Systems and methods for maintaining a distributed ledger of transactions pertaining to one or more smart contracts

ABSTRACT

Methods and systems for maintaining a distributed ledger and/or blockchain of transactions and/or events pertaining to autonomous vehicles and/or smart contracts. One or more processors may monitor one or more sensors associated with an autonomous vehicle. Based upon the outputs of the sensors, a change in condition of the autonomous vehicle may be detected. The condition may relate to operation, or an operational state of the vehicle and/or a condition associated with a smart contract. The processors may generate a transaction describing the detected change in the condition of the vehicle. The transaction may be transmitted to an enforcement server. As a result, an up-to-date ledger of autonomous vehicle and/or smart contract transactions and/or events may be maintained.

CROSS-REFERENCE TO RELATED APPLICATIONS

This application claims priority to and the benefit of the filing dateof (1) provisional U.S. Patent Application No. 62/425,684 entitled“SYSTEMS AND METHODS FOR MAINTAINING A DISTRIBUTED LEDGER GOVERNINGAUTONOMOUS VEHICLE TRANSACTIONS,” filed on Nov. 23, 2016, (2)provisional U.S. Patent Application No. 62/428,223 entitled “SYSTEMS ANDMETHODS FOR MAINTAINING A DISTRIBUTED LEDGER GOVERNING AUTONOMOUSVEHICLE TRANSACTIONS,” filed on Nov. 30, 2016; (3) provisional U.S.Patent Application No. 62/434,215 entitled “SYSTEMS AND METHODS FORMAINTAINING A DISTRIBUTED LEDGER GOVERNING AUTONOMOUS VEHICLETRANSACTIONS,” filed on Nov. 30, 2016; and (4) provisional U.S. PatentApplication No. 62/457,430 entitled “SYSTEMS AND METHODS FOR MAINTAININGA DISTRIBUTED LEDGER GOVERNING AUTONOMOUS VEHICLE TRANSACTIONS,” filedon Feb. 10, 2017; the entire contents of each of which are herebyexpressly incorporated herein by reference.

FIELD OF THE DISCLOSURE

The present disclosure generally relates to the maintenance of adistributed ledger that governs autonomous vehicle transactions and,more particularly, to systems and methods that leverage the distributedledger to facilitate the enforcement of a one or more smart contractsassociated with a one or more of autonomous vehicles.

BACKGROUND

In an autonomous vehicle, control of the vehicle may shift betweenvarying states of manual and autonomous control. According to SAEInternational, there are six levels of automation for on-road vehiclesranging from no automation at all (level 0) to full automation of allaspects of dynamic driving (level 5). Depending on which vehicle systemsare operating under autonomous control liability for any damage thatoccurs to the autonomous vehicle (or by the autonomous vehicle) may varybetween an operator of the autonomous vehicle, an insurer of theoperator and/or autonomous vehicle, and/or a manufacturer of theautonomous vehicle. Similarly, vehicle autonomy may also lead to othershifts in traditional liability arrangements. However, currently thereis no trusted system that automatically enforces these liabilityarrangements associated with autonomous vehicles.

SUMMARY

The present embodiments may be related to autonomous vehicle operation,including smart contracts that govern the operation of the autonomousvehicles. The embodiments described herein relate particularly tovarious aspects of autonomous operation, feature, component and/orsensor monitoring, and/or assessment. When data relevant to a smartcontract is generated, a transaction may be generated and compiled intoa block of a distributed ledger. Alternatively, some aspects relate toenforcement of smart contracts which are automatically enforced based atleast upon the transactions included in the distributed ledger. Specificsystems and methods are summarized below. The methods and systemssummarized below may include additional, less, or alternate actions,including those discussed elsewhere herein.

In another aspect, a computer-implemented method for maintaining adistributed ledger of transactions pertaining to one or more smartcontracts may be provided. The method may include (1) monitoring, by oneor more processors, a plurality of sensors associated with an autonomousvehicle; (2) detecting, by the one or more processors, a change in acondition of the autonomous vehicle, the condition being associated witha smart contract (such as a warranty, maintenance, service, or othercontract) that governs an autonomous vehicle system or technologyemployed by or mounted on the autonomous vehicle; (3) generating, by theone or more processors, a transaction describing the detected change inthe condition of the autonomous vehicle; and/or (4) transmitting, to aserver, the transaction. The method may include additional, less, oralternate actions, including those discussed elsewhere herein.

For instance, the method may include compiling, by the one or moreprocessors, the transaction into a block of transactions, the blockbeing an update to the distributed ledger. Transmitting the transactionto the server may include transmitting, to the server, the block oftransactions.

The method may include receiving, from the server, a subscriptionrequest indicating the condition of the vehicle; and associating, by theone or more processors, the condition of the vehicle with a set of theplurality of sensors associated with the vehicle. The subscriptionrequest may indicate one or more expected ranges of values for outputsof the set of the plurality of sensors, the expected ranges of valuesbeing associated with one or more states corresponding to the conditionof the vehicle and/or one or more operational states of one or moreautonomous vehicle systems or technologies, including those discussedherein.

Detecting the change in the condition of the vehicle may includedetecting, by the one or more processors, that an output of a sensor(such as an autonomous vehicle system or technology sensor, or othervehicle-mounted sensor) the set of the plurality of sensors changed froma first expected range of values to a second expected range of values.

The change in the condition of the vehicle may be indicative of acollision with another vehicle. The method may include receiving, fromthe other vehicle, operating data generated by one or more sensors ofthe other vehicle, and the sensors of the other vehicle may beassociated with an autonomous vehicle system of the other vehicle.

The method may include analyzing, by the one or more processors, theoperating data to determine a relative fault between a party associatedwith the vehicle and a party associated with the other vehicle, and/or arelative fault between the vehicles if the vehicles are autonomous orsemi-autonomous vehicles, or relative fault between different autonomousvehicle systems or technologies mounted on one or more vehicles.

The method may include analyzing, by the one or more processors, theoperating data to determine that the vehicle, and not the other vehicle,should generate the transaction. The operating data may indicate that anantenna associated with the other vehicle is damaged.

The vehicle may be an autonomous vehicle, and the change in a conditionof the vehicle is a change in operation or operational state (such ason, off, hi, low, etc.) of an autonomous vehicle system or technologymounted on the autonomous vehicle. The autonomous vehicle system ortechnology may be associated with or related to: driver alertnessmonitoring; driver responsiveness monitoring; pedestrian detection;artificial intelligence; a back-up system; a navigation system; apositioning system; a security system; an anti-hacking measure; a theftprevention system; and/or remote vehicle location determination.

Systems or computer-readable media storing instructions for implementingall or part of the method described above may also be provided in someaspects. Systems for implementing such methods may include one or moreof the following: a special-purpose computing device, a personalelectronic device, a processing unit of a vehicle, a remote server, oneor more sensors, one or more communication modules configured tocommunicate wirelessly via radio links, radio frequency links, and/orwireless communication channels, and/or one or more program memoriescoupled to one or more processors of the personal electronic device,processing unit of the vehicle, or remote server. Such program memoriesmay store instructions to cause the one or more processors to implementpart or all of the method described above. Additional or alternativefeatures described herein below may be included in some aspects.

BRIEF DESCRIPTION OF THE DRAWINGS

The figures described below depict various aspects of the system andmethods disclosed herein. It should be understood that each figuredepicts an embodiment of a particular aspect of the disclosed system andmethods, and that each of the figures is intended to accord with apossible embodiment thereof. Further, wherever possible, the followingdescription refers to the reference numerals included in the followingfigures, in which features depicted in multiple figures are designatedwith consistent reference numerals.

FIG. 1A depicts an exemplary environment including components andentities associated with maintaining a distributed ledger to facilitatethe enforcement of a plurality smart contracts associated withautonomous vehicles, in accordance with some embodiments;

FIG. 1B depicts another exemplary environment including components andentities associated with maintaining a distributed ledger to facilitatethe enforcement a plurality smart contracts associated with autonomousvehicles, in accordance with some embodiments;

FIG. 2A depicts an exemplary flow diagram associated with compilingtransactions into blocks of the distributed ledger, in accordance withsome embodiments;

FIG. 2B depicts another exemplary flow diagram associated with compilingtransactions into blocks of the distributed ledger, in accordance withsome embodiments;

FIG. 3 depicts an exemplary signal diagram associated with maintain adistributed ledger associated with a plurality of smart contracts, inaccordance with some embodiments;

FIG. 4 depicts an exemplary flow diagram associated with processingtransactions included in a distributed ledger, in accordance with someembodiments;

FIG. 5 depicts an exemplary flow diagram associated with processingtransactions included in a distributed ledger, in accordance with someembodiments;

FIG. 6 depicts a block diagram of an enforcement server, in accordancewith some embodiments; and

FIG. 7 depicts an exemplary computer-implemented method of creatingand/or maintaining a distributed ledger or blockchain related toautonomous vehicle transactions and/or events.

DETAILED DESCRIPTION

The present embodiments may relate to, inter alia, maintaining adistributed ledger to enforce a plurality of smart contracts associatedwith a plurality of autonomous vehicles. In some aspects, the presentembodiments relate to autonomous vehicle operation monitoring and/orassessment. The operation of the autonomous vehicles may impact theobligations of various parties associated with the autonomous vehicle,for example, an operator of the autonomous vehicle, a manufacturer ofthe autonomous vehicle, an insurer of the operator, an insurer of theautonomous vehicle, and/or other parties. To this end, the presentembodiments may leverage the use of a distributed ledger and/or smartcontracts to codify and/or automatically enforce these obligations.

A distributed ledger is a transactional record that is maintained ateach node of a peer to peer network. Commonly, the distributed ledger iscomprised of groupings of transactions bundled together into a “block.”When a change to the distributed ledger is made (e.g., when a newtransaction and/or block is created), each node must form a consensus asto how the change is integrated into the distributed ledger. Uponconsensus, the agreed upon change is pushed out to each node so thateach node maintains an identical copy of the updated distributed ledger.Any change that does not achieve a consensus is ignored. Accordingly,unlike a traditional, centralized ledger, a single party cannotunilaterally alter the distributed ledger.

In an application of distributed ledgers, each new block may becryptographically linked to the previous block in order to form a“blockchain.” More particularly, to create a new block, each transactionwithin a block may be assigned a hash value (i.e., an output of acryptographic hash function, such as SHA-2 or MD5). These hash valuesmay then be combined together utilizing cryptographic techniques (e.g.,a Merkle Tree) to generate a hash value representative of the entire newblock. This hash value may then be combined with the hash value of theprevious block to form a hash value included in the header of the newblock, thereby cryptographically linking the new block to theblockchain. To this end, the precise value utilized in the header of thenew block is dependent on the hash value for each transaction in the newblock, as well as the hash value for each transaction in every priorblock.

According to aspects, the hash value generated for the new block may beused as an input to a cryptographic puzzle that manipulates a noncevalue. When a solution to the cryptographic puzzle is found, the solvingnode publishes the solution and the other nodes then verify that thesolution is the correct solution. Because the solution also depends onthe particular hash values for each transaction within the blockchain,if the solving node attempted to modify any transaction, the solutionwould not be verified by the other nodes. More particularly, if a singlenode attempts to modify a prior transaction within the blockchain, acascade of different hash values are generated for each tier of thecryptographic combination technique. This results in the header for oneor more blocks being different than the corresponding header(s) in everyother node that did not make the exact same modification. As a result,the solution generated by the modifying node would not solve thecryptographic puzzle presented to any node without the identicalmodification. Thus, the version of the new block generated by themodifying node is readily recognized as including an impropermodification and is rejected by the consensus. This inability to modifypast transactions lead to blockchains being generally described astrusted, secure, and/or immutable.

A smart contract is a computer protocol that enables the automaticexecution and/or enforcement of an agreement between different parties.The smart contract may include one or more trigger conditions, that,when satisfied, correspond to one or more actions. For some smartcontracts, which action(s) from the one or more actions are performed isdetermined based upon one or more decision conditions. An enforcemententity corresponding to the smart contract may subscribe to one or moredata streams including data related to a trigger condition and/or adecision condition. Accordingly, the enforcement entity may route thedata streams to the smart contract so that the smart contract may detectthat a trigger condition has occurred and/or analyze a decisioncondition to direct the enforcement entity to perform one or moreactions.

As an example, a pay-per-trip insurer may include a maximum distance theautonomous vehicle may traverse in each trip. In this example, a driverand the pay-per-trip insurer may generate a smart contract to insure aparticular trip. In response, the enforcement entity may receive anodometer data stream from the covered vehicle. If the autonomous vehicleincurs liability during the trip (e.g., a trigger event occurred), thesmart contract may automatically analyze the odometer data feed todetermine whether the autonomous vehicle was operated within the boundsof the maximum distance in the insurance agreement (e.g., a decisioncondition). Accordingly, the smart contract may direct the performanceof an action to automatically assign liability to an operator or theinsurer based upon the odometer data feed. In another example, aninsurer of an autonomous vehicle and a manufacturer of an autonomousvehicle may generate a smart contract to divide the liability for damageto and/or caused by the autonomous vehicle. In particular, the insurermay agree to cover liability incurred during manual operation and themanufacturer may agree to cover liability incurred during autonomousoperation. The enforcement entity for this smart contract may subscribeto a data feed indicative of a control state of the autonomous car.Accordingly, in response to the autonomous vehicle incurring liability(e.g., a trigger event occurred), the smart contract may direct theperformance of an action to generate a claim and assign it to theappropriate entity based upon the control state (e.g., a decisioncondition). Of course, sensors monitoring an autonomous vehicle may beleveraged to facilitate many other types of liability arrangements in agenerated smart contract.

Given the relative ease to modify computer files, including a smartcontract computer file, and the parties' competing incentives, thereneeds to be a system that all parties trust to fairly and accuratelyregulate and enforce the smart contract. For at least the above reasons,a distributed ledger and/or a blockchain system may be utilized toestablish such a trusted system. To this end, the distributed ledger maybe leveraged to record the smart contract and/or the data related to thetrigger conditions and/or decision conditions of the smart contract.More particularly, the data utilized to determine the presence of atrigger condition and/or to analyze decision conditions to determine anaction may be recorded within a transaction included in the distributedledger. By recording this data in the distributed ledger, there is apublic and trusted record of the smart contract and the reasoning behindany action performed as directed by the smart contract. As a result, theparties that generated the smart contract may automatically enforcetheir contracts in a transparent and objective manner. For at least thisreason, an entity the regularly generates smart contracts, such as aninsurer, may establish a distributed ledger to govern and enforce aplurality of its smart contracts. According to certain aspects, thedistributed ledger may either be a public ledger (each node may readilyview the underlying data of each transaction) or a private ledger (theunderlying data needs an encryption key to be viewed), or a combinationof public and private ledger aspects.

According to certain aspects, an electronic device associated with eachvehicle may execute an application to monitor operational autonomousvehicle data that is relevant to the enforcement of a smart contract.The application may interpret the operational data to generate a“transaction” or a time-stamped record of the relevant operational data.In one embodiment, the transaction may include an identification of theautonomous vehicle or operator, a time of the transaction, and anindication of one or more vehicle conditions relevant to a smartcontract. In one embodiment, the application may process the operationaldata to create the indication of the vehicle condition. For example, theapplication may process an airbag activation event to determine that theautonomous vehicle was involved in a collision. As a result, theapplication may generate a transaction that indicates aliability-inducing event occurred. The transaction may further includedata relating to one or more decision conditions that the smart contractanalyzes to determine an action to perform in response to the triggercondition. As another example, the presence of microvibrations in asteering wheel may indicate a vehicle operator does not have his or herhands on the steering, such as is likely to occur in an autonomousoperation mode. Accordingly, the application may monitor the presence ofthese microvibrations. In one scenario, when a transaction indicative ofa trigger condition is generated, the transaction polls themicrovibration sensor to determine a control state of the vehicle andgenerate an indication of the control state to include in thetransaction. In another scenario, when the application detects that themicrovibrations appear or disappear, the application may generate atransaction indicative of a shift to autonomous or manual operation,respectively.

In one aspect, the application may receive an indication from anenforcement entity that the enforcement entity is subscribing to a datastream associated with the autonomous vehicle. For example, when a newsmart contract is generated, the enforcement entity may subscribe to oneor more data streams related to a trigger condition and/or decisioncondition associated therewith. Accordingly, in response to thesubscription request, the application may monitor one or more sensorsrelevant to trigger conditions and/or the decision conditions associatedwith the smart contract. It should be appreciated that the electronicdevice may monitor these sensors for other purposes (e.g., controllingthe operation of the autonomous vehicle). Accordingly, as it usedherein, “monitoring” may refer to the act of monitoring these sensorsfor the purpose of enforcing a smart contract and/or generating atransaction that may be included in the distributed ledger. In someembodiments, after the enforcement and/or termination of the smartcontract, the application may receive an indication that the enforcemententity is unsubscribing from a data streams associated with theautonomous vehicle. Accordingly, the application may cease monitoringthe relevant sensors in response to the unsubscribe request.

According to certain aspects, not all events that incur liability havethe same priority. For example, an autonomous vehicle that is involvedin a “fender bender” may be a lower priority than an autonomous vehiclethat was involved in a head-on collision. However, in some embodiments,the enforcement entity may not compile and analyze the block oftransactions until a threshold time has elapsed. As a result, in anemergency situation, precious time may be wasted waiting for the blockto be compiled. Accordingly, the application may include in eachtransaction a priority indication. When the application transmits to theenforcement entity a transaction with an urgent priority indication, thereception of the urgent transaction may trigger the enforcement entityto compile a new block that includes any pending transactions receivedafter the prior compilation period. Consequently, the urgent transactionmay be processed faster than possible in a traditional blockchainimplementation. It should be appreciated that while the block size maygenerally vary based upon the number of transactions received, theaperiodic compilation of a block in response to an urgent transactionmay cause a greater variation in the block size than a traditionalblockchain.

In one aspect, the systems and methods discussed herein address achallenge that is particular to blockchains. As an example, thechallenge relates to reducing the amount of data included in theblockchain to keep the size of the blockchain within a reasonable size.To this end, by the application processing the operational data of theautonomous vehicles to create state-based transactions instead ofoperational data-based transactions, fewer transactions are generated.Instead of a transaction being generated each sample period of anoperating data, the transaction may only be generated in response to achange in state of a condition relevant to a smart contract. This mayreduce the number of transactions generated at each autonomous vehicle,enabling the enforcement entity to compile blocks having a smaller,faster to process, block size. Moreover, because the blocks aretransmitted to each validation entity, decreasing the block size mayreduce network congestion enabling each block to be validated faster. Asa result, the systems and methods are necessarily rooted in computertechnology in order to overcome the aforementioned shortcomings thatspecifically arise in the realm of blockchain technology.

Moreover, in one aspect, the enforcement entity may further reduce thesize of the blockchain by pruning old blocks and/or transactions. Forexample, when a driver purchases a smart contract insurance product fora single trip, if no collision occurs during that trip, there may be noneed to maintain the transactions relating to the trip upon itsconclusion. Similarly, even if a collision occurs, liability for anydamage may be assigned and processed, negating the need to include thedata in the block chain. Accordingly, the enforcement entity may analyzethe blockchain for any transactions that may be pruned from theblockchain. However, as described above, simply removing the transactionfrom the distributed ledger may change one or more hash values withinthe block causing the pruned block to be rejected when consensus issought. Accordingly, pruning may involve removing the underlyingtransaction data but maintaining the header and/or hash value of thetransaction. Because the header and/or hash value generally requiresless storage than the underlying data, pruning can reduce the block sizeof older blocks while still being able to form a consensus on ablockchain that includes the pruned block.

In another aspect, to further reduce the size of the blocks, the systemsand methods disclosed may reduce duplicate and/or correlated transactiongenerated by one or more vehicles. To this end, when one or moreautonomous vehicles collide with one another, the applicationsmonitoring the operation of the respective autonomous vehicles mayexchange operational data for a period of time leading up to thecollision. Based upon the operational data respectively corresponding toeach of the one or more vehicles, one of the applications may generate asingle transaction that includes the condition of each of the one ormore autonomous vehicles involved in the collision. In some embodiments,this transaction may include decision condition data indicating arelative fault for each of the one or more autonomous vehicles basedupon the analysis of the respectively corresponding sets of operationaldata. Accordingly, the single transaction may be routed to a pluralityof smart contracts associated with any one of the one or more autonomousvehicles involved in the collision.

Exemplary Environments for Maintaining Distributed Ledger

FIG. 1A depicts an exemplary environment 100 maintaining a distributedledged for the enforcement of a plurality of smart contracts. AlthoughFIG. 1 depicts certain entities, components, and devices, it should beappreciated that additional or alternate entities and components areenvisioned.

As illustrated in FIG. 1A, the environment 100 may include a pluralityof autonomous vehicles 105 a-f. As it is generally used herein, the term“autonomous vehicle” refers to any vehicle with autonomous (or evensemi-autonomous) capabilities. Thus, “autonomous vehicle” is not limitedto fully autonomous vehicles (SAE level 5) and includes even partiallyautomated vehicles (SAE level 2). It should be appreciated that in fullyautonomous vehicles, an “operator” may include a person that providesnavigational input to the autonomous vehicle and/or a person locatedwithin the vehicle at a location wherein the person is capable ofengaging manual control should the need and/or desire arise. Asillustrated on the autonomous vehicle 105 a, the autonomous vehicle 105a may include one or more sensors 101 a-b that monitor the operationalstatus of the autonomous vehicle 105 a. The sensors 101 may include, forexample, a pressure sensor, a gyroscope, an accelerometer, an odometer,a vibration sensor, a microphone, an image sensor, a temperature sensor,and/or a radar or LIDAR sensor. Some of the sensors 101 may be includedin the autonomous vehicle 105 a by a manufacturer of the vehicle 105 aand others of the sensors 101 may be retrofitted onto the vehicle 105 aat some point after manufacture. For example, a fleet manager mayretrofit the vehicle 105 a with a particular type of sensor that relatesto a smart contact frequently generated by the fleet manager.

The autonomous vehicle 105 a may further include an electronic device103 configured to interpret operational data generated by the sensors101. Although FIG. 1A illustrates the electronic device 103 as aprocessing unit of the vehicle 105 a interconnected to the sensors 101via a communication bus of the vehicle 105 a, in other embodiments theelectronic device 103 may be a personal electronic device (e.g., amobile phone, a tablet, a laptop computer, a smart watch, smart glasses,other types of wearable electronics, an on-board diagnostic monitor, andso on) associated with an operator of the vehicle 105 a. In theseembodiments, the personal electronic device may receive the operationaldata via a wireless interface (e.g., a Bluetooth interface, a Wi-Fiinterface, or other known wireless communication interfaces) or a wiredinterface (e.g., an OBD port, a USB interface, an auxiliary interface,or other known wired communication interfaces). Additional informationdescribing the operation of autonomous vehicles may be found in co-ownedU.S. patent application Ser. No. 14/713,249 entitled “AUTONOMOUS VEHICLEOPERATION FEATURE MONITORING AND EVALUATION OF EFFECTIVENESS,” theentire disclosure of which is hereby incorporated by reference.

Regardless of the particular type of electronic device, the electronicdevice 103 may include an application configured to analyze theoperational data generated by the sensors 101. More particularly, theapplication may be configured to analyze the operational data to detecta plurality of conditions (e.g., trigger conditions or decisionconditions) associated with the vehicle 105 a. Periodically and/or inresponse to a change in condition, the application may generate atransaction that incorporates one or more of the detected conditions.According to certain aspects, the transaction may include indications ofthe one or more conditions, an identifier of the vehicle 105 a and/orthe operator of the vehicle 105 a, a timestamp, an indication of apriority, and/or a portion of the operational data upon which the one ormore detected conditions may be based. The electronic device 103 maytransmit generated transactions via an antenna 104. Although FIG. 1illustrates the antenna 104 as being separate from the electronic device103, it should be appreciated that for some types of electronic devices,such as a mobile phone, the antenna 104 may be included in theelectronic device 103 itself.

According to certain aspects, the electronic device 103 may also beconfigured to receive control signals from a command center and/or otherremote computing device (not depicted) to remotely control the operationof the vehicle 105 a. In some scenarios, the control signals areindicative of a remote user actively controlling the vehicle 105 a(e.g., the remote user is piloting the vehicle 105 a as a drone operatorwould pilot a drone). In other scenarios, the control signals areindicative of particular actions the autonomous systems of the vehicle105 a should undertake. For example, an ambulance may broadcast acontrol signal to nearby autonomous vehicles to cause the autonomousvehicles to yield to the ambulance and/or pull over to the side of theroad.

The plurality of autonomous vehicles 105 a-f may be configured tocommunicate with an enforcement server 115 via one or more communicationnetworks 110. The networks 110 may facilitate any data communicationbetween the plurality of autonomous vehicles 105 a-f and an enforcementserver 115 via any standard or technology (e.g., GSM, CDMA, TDMA, WCDMA,LTE, EDGE, OFDM, GPRS, EV-DO, UWB, IEEE 802 including Ethernet, WiMAX,and/or others). According to present embodiments, the plurality ofautonomous vehicles 105 a-f transmit generated transactions to theenforcement server 115 via the networks 110. In some embodiments, thenetworks 110 may include a mesh or ad hoc network wherein a portion a ofthe plurality of autonomous vehicles 105 a-f function as nodes of themesh or ad hoc network. Thus, in some embodiments, a transactiongenerated at the autonomous vehicle 105 a may be routed to, for example,the autonomous vehicle 105 c and the autonomous vehicle 105 f prior tothe enforcement server 115. It should be appreciated that standard ortechnology used to communicate between and among the plurality ofautonomous vehicles 105 a-f is not necessarily the same standard ortechnology utilized to communicate between one of the plurality ofautonomous vehicles 105 a-f and the enforcement server 115. In additionto the transaction, in some embodiments, one or more of the plurality ofautonomous vehicles 105 may exchange operational data over the mesh orad hoc network in response to the one or more of the plurality ofautonomous vehicles being involved in a collision.

According to certain aspects, the enforcement server 115 may beconfigured to compile new blocks to add to a blockchain and to enforce aplurality of smart contracts. Although FIG. 1A illustrates a singleenforcement server 115, it should be appreciated that in someembodiments, the enforcement server 115 may be a plurality ofinterconnected servers, for example, in a cloud computing environment.In one aspect, the enforcement server 115 may periodically compile aplurality of transactions received from the plurality of autonomousvehicles 105. The enforcement server 115 may also aperiodically compilea plurality of transactions received from the plurality of autonomousvehicles 105 in response to receiving an urgent transaction. After thenew block is compiled, the enforcement server 115 may transmit the newblock to the plurality of autonomous vehicles 105 and/or dedicatedvalidation entities 135 to generate a solution to incorporate the blockinto blockchain and/or to form a consensus on the solution. AlthoughFIG. 1 illustrates that the dedicated validation entities as beingseparate from the enforcement server 115, it should be appreciated thatthe enforcement server 115 may itself include a module dedicated togenerating a solution to the cryptographic puzzle and/or forming aconsensus on the solution.

In another aspect, the enforcement server 115 may analyze a smartcontract database (not depicted) to determine whether any transactionscompiled into the new block are associated with a smart contract. Tothis end, the enforcement server 115 may extract from each transactionone or more indications identifying an autonomous vehicle and/or anoperator of the autonomous vehicle and route the transaction to arespectively corresponding one or more smart contracts that govern theidentified autonomous vehicle and/or operator. In one scenario, thetransaction may include a plurality of data relating to the status of atrigger condition and/or one or more decision conditions. In response,the particular smart contract may direct the enforcement server 115 toperform an action to enforce the particular smart contract. For example,the action may be to generate and/or file an insurance claim. Dependingon the action, the enforcement server 115 may execute one or more thirdparty applications 125 to carry out the action. In the insurance claimexample, a third party insurer may include an application configured togenerate and/or process the insurance claim based upon data included inthe transaction. As another example, an emergency response entity (e.g.,an EMT) may include an application in the third party applications 125to dispatch a responder to a location of an autonomous vehicle.

In some scenarios, a decision condition requires the analysis of datanot generated at an autonomous vehicle. As an example, a decisioncondition may be related to a weather condition at the time liabilityoccurred (e.g., the presence of rain when the liability was incurred).Accordingly, the smart contract may interact with one or more thirdparty applications 125 to retrieve this additional decision conditiondata. In this example, one of the third party applications 125 may be aweather service application capable of outputting weather conditions atthe location of the autonomous vehicle at the time indicated by thetimestamp of the transaction. In one aspect, the smart contract maymodify the transaction to include the additional condition data(assuming the transaction has not been compiled into a block) and/orgenerate a new transaction that indicates the additional condition data.The exemplary environment 100 may include additional, fewer, oralternate equipment or components, including those discussed elsewhereherein. Further, in some embodiments, the actions described as beingperformed by the enforcement server 115 may additionally oralternatively be performed at one or more of the autonomous vehicles 105a-f.

Turning now to FIG. 1B, depicted is another exemplary environment 150for maintaining a distributed ledger associated with autonomousvehicles. Although FIG. 1B depicts certain entities, components, anddevices, it should be appreciated that additional or alternate entitiesand components are envisioned.

As illustrated in FIG. 1B, the environment 150 may include a distributedledger 145. The distributed ledger 145 may be maintained via a networkof nodes, including one or more autonomous vehicles 105 and/or anenforcement server 115. The nodes may have access distributed ledger 145and/or generate data included in the distributed ledger 145. Asdescribed above, the distributed ledger 145 may not be changed withoutfirst forming a consensus on the change. Accordingly, as depicted byFIG. 1B, the distributed ledger 145 may be considered separate from anyindividual node, even though the individual nodes may store local copiesof the distributed ledger 145.

According to certain aspects, as described with respect to FIG. 1A, theautonomous vehicle 105 may include a plurality of sensors 101 a-b, anelectronic device 103, and/or an antenna 104. The autonomous vehicle 105may communicate with the enforcement server 115 via the electronicdevice 103 and/or the antenna 104.

As illustrated, the enforcement sever 115 may include a blockchainmanager 117. The blockchain manager 117 may be a software program,engine, and/or a module that is executed by one or more processorsinterconnected with the enforcement server 115. In one embodiment, theblockchain manager 117 may compile a plurality of transactions into ablock, update the distributed ledger 145 to include a block, routetransaction data to one or more smart contracts, and/or automaticallyenforce one or more smart contracts. According to certain aspects, anoperator of the enforcement server may interact with a managementinterface 119 to control aspects of the distributed ledger 145 and/orset control parameters associated with the blockchain manager 117. Forexample, a period for which blocks are generated may be set via themanagement interface 119. In an aspect, the plurality of smart contractsassociated with the distributed ledger 145 may be stored in a smartcontracts database 130. Although FIG. 1B depicts the smart contractdatabase 130 as a part of the enforcement sever 115, the smart contractdatabase may be maintained within the distributed ledger 145.

According to certain aspects, one or more public devices 123 may accessdata stored at the enforcement server via a public interface 121. Thepublic interface 121 may be a read only interface that prevents the oneor more public devices 123 from writing transactions to the distributedledger 145. To this end, the one or more public devices 123 may be used,for example, to view data maintained within the distributed ledger 145,to view the status of one or more smart contracts associated with thedistributed ledger 145, compile statistics regarding data maintained inthe distributed ledger, and so on.

Additionally or alternatively, one or more third party applications 125may interact with the distributed ledger 145 via an API 127 of theenforcement server 115. The third party applications 125 may beassociated with one or more entities associated with an autonomousvehicle. For example, the third party applications 125 may include anapplication to generate and/or file an insurance claim, send a repairrequest, send a tow request, contact an emergency service provider, andso on. It should be appreciated that although FIG. 1B depicts the thirdparty applications 125 as separate from the enforcement sever 115, insome embodiments a portion of the third party applications 125 may bestored locally at the enforcement server 115. The exemplary environment150 may include additional, fewer, or alternate equipment or components,including those discussed elsewhere herein. Further, in someembodiments, the actions described as being performed by the enforcementserver 115 may additionally or alternatively be performed at one or moreof the autonomous vehicles 105.

Exemplary Flow Diagrams for Maintaining Distributed Ledger

Turning now to FIG. 2A, illustrated is an exemplary flow diagram 200associated with compiling a plurality of transactions into blocks. Asillustrated, each transaction may include several components. A firstcomponent may include an identification of a vehicle and/or a driverassociated with the transaction. The vehicle identification may be aVIN, an identifier assigned by a fleet operator, a license plate, or anyother identifier that corresponds to a particular autonomous vehicle.The driver identification may be a name, a policy or account number, ausername, or any other identifier that corresponds to a person operatingthe autonomous vehicle. Although the transaction illustrated by FIG. 2only depicts a single vehicle or driver identification, it should beappreciated that some transactions may include an identification of aplurality of vehicles and/or drivers. For example, if multipleautonomous vehicles are involved in a collision, a single transactionmay include a vehicle and/or driver identification for each autonomousvehicle involved in the collision. Further, each transaction may includea timestamp indicating a time the transaction was generated and/or atime the underlying data was measured.

Another component of each transaction may be a transaction informationcomponent. The transaction information may include a plurality ofcondition data that are analyzed by a smart contract associated with thevehicle and/or driver. In some aspects, the vehicle and/or driveridentification and the timestamp may be viewed as a transaction header,whereas the transaction information may be viewed as the transactionpayload. The transaction information may include an indication that atrigger condition occurred, an indication related to one or moredecision conditions, and/or any underlying operational data generated bysensors within an autonomous vehicle that the condition indications arebased upon. For example, the transaction information may include anindication that a liability inducing event occurred (e.g., a triggercondition) and/or an indication that the autonomous vehicle was operatedin a manual operation mode (e.g., a decision condition).

According to illustrated embodiments, a plurality of transactions may becompiled into a block. In one scenario, a plurality of transactionsgenerated by a plurality of autonomous vehicle 205 a-z are compiled intoa block 245 a. For example, each of the plurality of autonomous vehiclemay transmit transactions to an enforcement server (such as theenforcement server 115 as described with respect to FIG. 1) forcompilation into the block 245 a. In another example, an autonomousvehicle 205 a compiles a plurality of transactions generated at theautonomous vehicle 205 a into a block 245 b that only includestransaction associated with the autonomous vehicle 205 a. In thisexample, the autonomous vehicle 205 a may transmit to the enforcementserver the generated block 245 b for distribution to a plurality ofvalidation entities that attempt to solve a cryptographic puzzle basedupon the header of the generated block 245 b and/or form a consensus onsaid solution. The exemplary flow diagram 200 may include additional,fewer, or alternate actions, including those discussed elsewhere herein.

Turning now to FIG. 2B, depicted is an example flow diagram 250indicating the generation of transactions in response to an autonomousvehicle, such as the autonomous vehicle 105 a as described with respectto FIG. 1A. The autonomous vehicle may be associated with a smartcontract 230. In some embodiments, the smart contract 230 is storedwithin a distributed ledger and/or at an enforcement server. Althoughthe smart contract 230 depicted by the flow diagram 250 is associatedwith assigning liability based upon autonomous or manual control of theautonomous vehicle, it is envisioned that other smart contracts may beassociated with arrangements based upon the detection of other events.

The flow diagram 250 may begin at block 252 where an operator of theautonomous vehicle is manually operating the autonomous vehicle and noliability has been incurred. For example, the operator may have poweredon the autonomous vehicle and began to drive towards a destination. Anelectronic device associated with the autonomous vehicle may generate atransaction to be included in a block 245 c of the distributed ledger.The transaction information component of this transaction may include aflag that indicates that the autonomous vehicle is being operatedmanually (“Control: 0”) and/or a flag that indicates that the autonomousvehicle has not incurred liability (“Liability: 0”).

At block 254, the operator of the autonomous vehicle may have engagedautonomous control functionality associated with the autonomous vehicle.For example, the operator may have instructed the autonomous vehicle toautomatically drive to the destination. In response, the electronicdevice may generate a transaction to be included in block 245 d of thedistributed ledger. The transaction information component of thistransaction may include a flag that indicates that the autonomousvehicle is being operated autonomously (“Control: 1”) and/or a flag thatindicates that the autonomous vehicle has not incurred liability(“Liability: 0”).

At block 256, the operator of the autonomous vehicle may have disengagedautonomous control functionality associated with the autonomous vehicle.For example, the operator may resume manual control by interacting withmanual control (e.g., a steering wheel, brake pedal, etc.). In response,the electronic device may generate a transaction to be included in block245 e of the distributed ledger. The transaction information componentof this transaction may include a flag that indicates that theautonomous vehicle is being operated manually (“Control: 0”) and/or aflag that indicates that the autonomous vehicle has not incurredliability (“Liability: 0”).

At block 258, the autonomous vehicle may have incurred liability. Forexample, the autonomous vehicle may have experienced a collision. In theillustrated scenario, the autonomous vehicle may have deployed an airbagin response to detecting the collision. According to aspects, theelectronic device may generate a transaction to be included in block 245f of the distributed ledger. The transaction information component ofthis transaction may include a flag that indicates that the autonomousvehicle is being operated manually (“Control: 0”) and/or a flag thatindicates that the autonomous vehicle has, in fact, incurred liability(“Liability: 1”).

At block 260, one or more actions associated with enforcing the smartcontract may be performed. To this end, when transactions included inthe block 245 f are routed to the smart contract 230, the smart contract230 may analyze the transaction generated at block 258; moreparticularly, the transaction information component of the transactiongenerated at block 258. Based on this transaction information, the smartcontract 230 may determine one or more actions to enforce the smartcontract 230. As an example, the smart contract 230 may cause theenforcement server to generate an insurance claim that assigns liabilityfor damage incurred in the collision to the operator of the autonomousvehicle. It should be appreciated that although FIG. 2B depicts blocks245 c-f are depicted as separate blocks, in some scenarios, one or moreof the blocks 245 c-f may actually be the same block. For example, theevents at blocks 254 and 256 may have occurred within the blockcompilation period associated with the distributed ledger. The exemplaryenvironment 250 may include additional, fewer, or alternate actions,including those discussed elsewhere herein.

For example, as described elsewhere herein, the autonomous vehicle maybe operated remotely. Accordingly, the control state may include anindication that the autonomous vehicle is being remotely operated. Inthis example, when a liability-inducing event occurs, the smart contract230 may cause the enforcement server to generate an insurance claim thatassigns liability to an entity associated with a remote operator of theautonomous vehicle.

Exemplary Distributed Ledger Communication

Referring to FIG. 3, illustrated is an exemplary signal diagram 300associated with maintaining a distributed ledger associated with aplurality of smart contracts. In particular, FIG. 3 may include aplurality of autonomous vehicles 305 (such as the plurality ofautonomous vehicles 105 a-f as described with respect to FIG. 1), anenforcement server 315 (such as the enforcement server 115 as describedwith respect to FIG. 1), dedicated validation entities 335 (such as thededicated validation entities 135 as described with respect to FIG. 1),and/or a smart contracts database 330. Autonomous vehicles within theplurality of autonomous vehicles may be associated with an electronicdevice (such as the electronic device 103 as described with respect toFIG. 1) executing an application. It should be appreciated theelectronic device may be any electronic device (e.g., an on-boardcomputer, a smartphone, a desktop computer, a laptop, a tablet, phablet,netbook, notebook, a smart watch, smart glasses, smart contact lenses,wearable electronics device, other mobile device, etc.).

The signal diagram 300 may begin when one or more of the plurality ofautonomous vehicles 305 detects (320) a change in a condition. In onescenario, the change in condition is associated with a decisioncondition of one or more smart contracts governing the autonomousvehicle. For example, the decision condition may relate to whether thevehicle is being operated in a manual or an autonomous mode asdetermined, for example, by detecting the presence of microvibrations ina steering wheel and/or a control signal communicated over acommunication bus of the autonomous vehicle. In another example, thedecision condition may relate to a distance traversed by the autonomousvehicle as determined, for example, by an odometer sensor. In anotherscenario, the change in condition is associated with a trigger conditionof one or more smart contracts governing the autonomous vehicle. Forexample, the change in condition may be the autonomous vehicle incurringliability, such as a liability in response to damage to the autonomousvehicle. In this example, the trigger condition may be detected bydetecting a deployment of an airbag, detecting an output from a front orside impact sensor, and/or detecting a malfunction or other abnormalcondition for one or more sensors of the autonomous vehicle.

The one or more autonomous vehicles of the plurality of autonomousvehicles 305 may then generate (324) a transaction that indicates thedetected change in condition. As described above with respect to theenvironment 200, the transaction may include an indication of anidentity of one or more autonomous vehicles and/or operators thereof, atimestamp and/or a plurality of transaction data. According to certainaspects, when multiple autonomous vehicles of the plurality ofautonomous vehicles 305 are involved in a collision, the involvedautonomous vehicles may communicate with one another to generate asingle transaction. To generate this single transaction, the involvedautonomous vehicles may exchange operating data describing a time periodstraddling the collision to generate a transaction that indicatesrelative fault for the collision and/or one more amounts of liabilityincurred. In some further aspects, the autonomous vehicles may exchangediagnostic data to determine which autonomous vehicle should generatethe transaction. For example, an antenna of a particular vehicle mayhave been damaged in the collision causing data transmissions therefromto be susceptible to additional noise and/or data loss. Accordingly, adifferent autonomous vehicle involved in the collision may be assignedthe task of generating the transaction.

According to other aspects, as part of generating the transaction, theautonomous vehicle may determine a priority of the transaction. To thisend, not every transaction may have the same priority. For example, atransaction may indicate that significant damage occurred to a vehicle,rendering the vehicle inoperable and/or a passenger in a dangerousenvironment (e.g., the transaction indicates there is a leak in the gastank). Accordingly, the autonomous vehicle may assign this transactionan urgent priority. On the other hand, in one example, for a transactionthat indicates a shift between manual and autonomous control, or atransaction that indicates relatively minor damage (e.g., the autonomousvehicle experienced light damage to a bumper), the autonomous vehiclemay assign the transaction a normal or other non-urgent priority.

After the one or more autonomous vehicles of the plurality of autonomousvehicles 305 generate the transactions, the one or more autonomousvehicles may transmit (328) the transactions to the enforcement server315 via a communication network. In some embodiments, the communicationnetwork may include an ad hoc or mesh network comprised of the pluralityof autonomous vehicles 305. At some point after receiving thetransactions, the enforcement server 315 may compile (332) a new blockof the distributed ledger that includes the transactions. As part ofcompiling the block, the enforcement server 315 may generate a hashvalue for each transaction included in the block. The enforcement server315 may then cryptographically combine these hash values, such asthrough the use of a Merkle Tree, to generate a hash value of the blockas a whole. The enforcement server 315 may include the hash value of theblock as a whole in a header of the block.

In one embodiment, the enforcement server 315 may compile the blockperiodically (e.g., every five minutes, every ten minutes, etc.). Itshould be appreciated, that the period may change over time in anattempt to keep the block size below a threshold size. Generally, asmore autonomous vehicles are included in the plurality of autonomousvehicles 305, more transactions are generated. As a result, over time,using a fixed period may result in more and more transactions beingincluded in each block, thereby increasing the size of the averageblock. Accordingly, the enforcement server 315 may adjust (e.g.,shorten) the compilation period to ensure that the average block sizedoes not exceed the threshold size despite the reception of a greatervolume of transactions. Further, according to aspects, the enforcementserver 315 may compile the block aperiodically upon the reception of atransaction having an urgent priority.

The enforcement entity may transmit (336) the compiled block to one ormore nodes of the distributed ledger. The nodes may include thededicated validation entities 335 (236 b) and/or a portion of theplurality of autonomous vehicles 305 (236 a). The nodes that receive theblock may attempt to generate (340) a solution to a cryptographic puzzlethat is based upon the hash value included in the header in the block.After a particular node finds a solution to the cryptographic puzzle,the node may transmit the solution to the other nodes to verify thesolution. The other nodes, such as the portion of the plurality ofautonomous vehicles 305, the enforcement server 315, and/or thededicated validation entities 335, may then form a consensus (344) onthe solution found by the particular node. More particularly, the othernodes may vote to approve block's inclusion into the distributed ledgerupon successfully verifying the solution. Consensus may be formed whenover half of the nodes have voted for the inclusion of the block. Itshould be appreciated that finding the solution to the cryptographicpuzzle involves significantly more processing power than verifying thesolution. Accordingly, in some embodiments, pools of nodes maycoordinate their processing power in an attempt to jointly find thesolution to the cryptographic puzzle.

To this end, the enforcement server 315 may determine that a portion ofthe plurality of autonomous vehicles 305 participated in finding theverified solution to the cryptographic puzzle. To encourageparticipation in finding the solution, the enforcement server 315 maycredit a respective account associated with each autonomous vehicle(and/or operator thereof) that participated in finding the verifiedsolution with a currency. In some embodiments, the currency may bereward points. In other embodiments, the currency may be acryptocurrency. It should be appreciated that in some scenarios, whenmultiple autonomous vehicles participated in finding the verifiedsolution, each autonomous vehicle may have made an unequal contributionto the overall processing power. Accordingly, the enforcement server 315may divide the credit between and among the portion of the plurality ofautonomous vehicles 305 in accordance to the respective processing powercontributed to finding the solution.

The signal diagram 300 continues when the enforcement server 315 routes(348) the plurality of transactions compiled into the block to the smartcontract database 330. The smart contract database 330 may be maintainedat the enforcement server 315 and/or within the distributed ledgeritself. In one embodiment, routing a transaction may include extractingthe indication(s) of the autonomous vehicle and/or the operator from thetransaction and utilizing the indication(s) to query the smart contractdatabase 330. If a particular smart contract matches the query (e.g.,the smart contract governs an autonomous vehicle and/or operator thereofindicated by the transaction), routing may further include theparticular smart contract processing the transaction informationincluded in the transaction. To this end, the particular smart contractmay determine whether a trigger condition occurred and/or analyze aplurality of condition data to determine one or more actions to performin response to the trigger condition occurring. It should be appreciatedthat a plurality of transactions may be routed to a plurality of smartcontracts. Accordingly, the plurality of smart contracts within thesmart contract database 330 may generate a plurality of actions toenforce the smart contracts.

In one example, a particular smart contract may govern a relationshipbetween an insurer and a manufacturer of a particular autonomousvehicle. In particular, the insurer may agree to cover liabilityincurred while the particular autonomous vehicle is operated in a manualmode; whereas the manufacturer may agree to cover liability incurredwhile the particular autonomous vehicle is operated in a fully orsemi-autonomous mode. In this example, if the particular autonomousvehicle incurs liability, the particular autonomous vehicle may generatea transaction indicating the liability. When the transaction is routedto the particular smart contract, the particular smart contract maydetect the presence of a trigger condition (i.e., incurring liability).Accordingly, the particular smart contract may then analyze conditiondata to determine whether the particular autonomous vehicle was operatedin a manual or autonomous mode (e.g., a decision condition). If theparticular autonomous vehicle was operated in a manual mode, theparticular smart contract may determine that an action is toautomatically generate an insurance claim that assigns liability to theinsurer and/or the operator of the particular autonomous vehicle. On theother hand, if the particular autonomous vehicle was operated in anautonomous mode, the particular smart contract may determine that anaction is to automatically generate an insurance claim that assignsliability to the manufacturer.

In a similar example, a particular smart contract may govern arelationship between an insurer and a remote operator of a particularautonomous vehicle. In particular, the insurer may agree to coverliability incurred while the particular autonomous vehicle is operatedin a manual mode; whereas the remote operator may agree to coverliability incurred while the particular autonomous vehicle is remotelyoperated. In this example, if the particular autonomous vehicle incursliability, the particular autonomous vehicle may generate a transactionindicating the liability. When the transaction is routed to theparticular smart contract, the particular smart contract may detect thepresence of a trigger condition (i.e., incurring liability).Accordingly, the particular smart contract may then analyze conditiondata to determine whether the particular autonomous vehicle was operatedin a manual or remote mode (e.g., a decision condition). If theparticular autonomous vehicle was operated in a manual mode, theparticular smart contract may determine that an action is toautomatically generate an insurance claim that assigns liability to theinsurer and/or the operator of the particular autonomous vehicle. On theother hand, if the particular autonomous vehicle was operated in aremote mode, the particular smart contract may determine that an actionis to automatically generate an insurance claim that assigns liabilityto the remote operator.

In another example, a particular smart contract may govern arelationship between an insurer and an operator of a particularautonomous vehicle. In particular, the insurer may agree to only coverliability incurred while the particular autonomous vehicle is operatedwithin a mileage limit. Similarly, in this example, if the particularautonomous vehicle incurs liability, the particular autonomous vehiclemay generate a transaction indicating the liability. When thetransaction is routed to the particular smart contract, the particularsmart contract may detect the presence of a trigger condition (i.e.,incurring liability). Accordingly, the particular smart contract maythen analyze condition data to determine whether the particularautonomous vehicle traversed a distance that exceeds the mileage limit(e.g., a decision condition). If the particular autonomous vehicletraversed a distance that exceeds the mileage limit, the particularsmart contract may determine that an action is to automatically generatean insurance claim that assigns liability to the operator of theparticular autonomous vehicle. Conversely, if the particular autonomousvehicle has not traversed a distance that exceeds the mileage limit, theparticular smart contract may determine that an action is toautomatically generate an insurance claim that assigns liability to theinsurer.

In any event, the plurality of smart contracts in the smart contractdatabase may transmit (352) the one or more determined actions to theenforcement server 315, which executes (356) the actions. In oneembodiment, the enforcement server 315 may include a plurality of thirdparty applications (such as the third party applications 125 asdescribed with respect to FIG. 1) that may assist in the execution ofthe actions. For example, a manufacturer or insurer may provide anapplication that enables the enforcement server 315 to generate, file,and/or subrogate a claim with the manufacturer or insurer. As anotherexample, the enforcement server 315 may interact with an applicationprovided by an incident response service provider (e.g., a policeentity, an EMT, a tow service, a fire department, an autonomous vehicledispatch, etc.) to execute one or more actions to ensure the safety ofpersons affected by the event that incurred liability.

According to certain aspects, the enforcement server 315 may analyze(360) the distributed ledger to determine that a particular block of thedistributed ledger includes one or more transactions that are no longerrelevant to the plurality of smart contracts in the smart contractdatabase 330. For example, a transaction in the particular block mayinclude transaction information relating to a decision condition when atrigger condition did not occur (e.g., an autonomous vehicle completed atrip without incurring liability). As another example, the transactionmay be older than a threshold age (e.g., older than thirty days). Inresponse, in order to reduce the overall size of the distributed ledger,the enforcement server 315 may prune the transaction that is no longerrelevant from the particular block. As explained above, thecorresponding to the particular block is dependent on the header for thetransaction. Accordingly, pruning may involve deleting the underlyingdata from the transaction (e.g., raw transaction information) whilemaintaining the header of the transaction. Thus, the amount of datastored in each block may be reduced without impacting the cryptographiclink that secures the distributed ledger. In some embodiments, thepruned transaction and/or the data associated therewith may be copied toan archival database for record-keeping. It should be appreciated thatsignal diagram 300 may include additional, less, and/or alternativeactions, including those discussed elsewhere herein. For example, insome embodiments, some of the actions described with respect to theenforcement server 315 may be alternatively performed by one or more ofthe plurality of autonomous vehicles 305, and/or vice versa.

Exemplary Methods of Maintaining Distributed Ledger

Referring to FIG. 4, depicted is a block diagram of an exemplarycomputer-implemented method 400 of processing transactions included in adistributed ledger. The method 400 may be facilitated by an electronicdevice associated with an autonomous vehicle, such as the electronicdevice 103 associated with the autonomous vehicle 105 a as describedwith respect to FIG. 1, that may be in direct or indirect communicationwith an enforcement server, such as the enforcement server 115 asdescribed with respect to FIG. 1.

The method 400 may begin by the electronic device monitoring a pluralityof vehicle sensors (block 405). More particularly, the electronic devicemay monitor a plurality of data generated by the plurality of vehiclesensors. For example, the electronic device may monitor the output of anaccelerometer, a gyroscope, a brake sensor, an impact sensor, animage/video sensor, an audio sensor, a pressure sensor, and/or any othersensor that monitors a condition associated with the autonomous vehicle.In some embodiments, the sensor data may be communicated over acommunication bus associated with the autonomous vehicles. Additionallyor alternatively, the sensor data may be communicated directly to theelectronic device via a wireless or wired connection.

At block 410, the electronic device may analyze the sensor data todetect a change in a monitored condition. In one embodiment, theautonomous vehicle may be associated with one or more smart contracts,each associated with a trigger condition and/or a decision condition. Anapplication executing on the electronic device may receive asubscription request to provide data streams relating to triggerconditions and/or decision conditions associated with one or more smartcontracts. The application may be able to associate a trigger and/ordecision condition with one or more sensors that are relevant to therequested data streams. For example, for a trigger condition ofincurring liability, the application may cause the electronic device tomonitor an impact sensor, an airbag deployment sensor, a gyroscope, anaccelerometer, a window integrity sensor, or even a sensor of anotherautonomous vehicles and/or a smart infrastructure device proximate tothe autonomous vehicle. In some embodiments, not only may theapplication associate the trigger and/or decision condition with the oneor more relevant sensors, but also one or more expected ranges of valuesassociated with one or more statuses associated with the triggercondition. In the above example, an accelerometer may be associated witha threshold value that, when exceeded, is indicative that the autonomousvehicle experienced a collision. Accordingly, for the accelerometer, anexpected range of values for a status indicating no liability may bevalues below the threshold and an expected range of values for a statusindicating liability may be values that exceed the threshold. For somesensors, for example a window integrity sensor, the expected range maybe a Boolean value or another similar flag that indicates a statusbeyond raw measured statistics (e.g., the range includes, for example,TRUE or “SHATTERED,” as opposed to, say, 8 m/s²). In any event, theelectronic device may monitor the data generated by the relevant sensorsto detect whether a status for a trigger condition and/or a decisioncondition has changed. Additionally or alternatively, as describedelsewhere herein, the status (and/or ranges of values indicativethereof) may be associated with an urgent, normal, low, and/or any otherpriority level.

At block 415, the electronic device may generate a transaction thatdescribes the detected change in status for a trigger condition and/or adecision condition. As described elsewhere herein, the transaction mayinclude an indication of the autonomous vehicle and/or an operatorthereof, a time stamp, and/or a plurality of transaction information. Insome embodiments, the transaction information includes an indication ofthe status of trigger and/or decision condition. Additionally oralternatively, the transaction information may include at least aportion of the raw data that indicated that change in the trigger and/ordecision condition.

At block 420, the electronic device may transmit the generatedtransaction to the enforcement server for processing and/or compilationinto a block to be added to the distributed ledger. In some embodiments,instead of the enforcement server compiling the transactions into theblock, the electronic device may instead compile a plurality oftransaction the electronic device generated (and/or received fromanother autonomous vehicle) into the proposed block. In theseembodiments, transmitting the transaction to the enforcement server mayinclude transmitting the proposed block that includes the transaction tothe enforcement server.

At block 425, in embodiments wherein the electronic device is also avalidation entity, the electronic device may attempt to solve acryptographic puzzle based upon the header of the proposed block. Itshould be appreciated that because there are typically severalvalidation entities attempting to solve the same cryptographic puzzle,the electronic device may never actually solve the cryptographic puzzle.To this end, once one validation entity claims to have solved thecryptographic puzzle, that validation entity may transmit its solutionto the other validation entities for verification.

At block 430, in embodiments wherein the electronic device is also avalidation entity, the electronic device may attempt to form a consensuson the solution. In scenarios in which another validation claims to havesolved the cryptographic solution, the electronic device may attempt toverify the received solution. If the solution is successfully verified,the electronic device may vote to include the block in the distributedledger. In scenarios in which the electronic device solved thecryptographic puzzle, the electronic device may be considered to haveattempted to form the consensus when the electronic device sent theproposed solution to the other validation entities. It should beappreciated that the method 400 may include additional, less, oralternative actions, including those described elsewhere herein.

Referring now to FIG. 5, depicted is a block diagram of an exemplarycomputer-implemented method 500 of processing transactions included in adistributed ledger. The method 500 may be facilitated by an enforcementserver, such as the enforcement server 115 as described with respect toFIG. 1, that may be in direct or indirect communication with a pluralityof autonomous vehicles, such as the plurality of autonomous vehicles 105a-f as described with respect to FIG. 1, and interconnected with a smartcontract database that stores a plurality of smart contracts.

The method 500 may begin by the enforcement server receiving a pluralityof transactions from the plurality of autonomous vehicles (block 505).As described elsewhere herein, the transactions may include anindication of an autonomous vehicle that generated the transactionand/or an operator thereof, a time stamp, and/or a plurality oftransaction information. According to aspects, the enforcement servermay continue to receive transaction until the expiration of a thresholdamount of time has expired and/or an urgent priority transaction isreceived.

At block 510, the enforcement server may compile the receivedtransactions into a proposed block. As described elsewhere, compilingthe block may involve cryptographically combining, such as through theuse of a Merkle Tree, a hash value associated with each of thetransactions to form a hash value associated with the block as a whole.This hash value may be included in the header file of the proposedblock.

At block 515, the enforcement server may distribute the proposed blockto a plurality of validation entities that attempt to solve acryptographic puzzle based upon the hash value included in the headerand a nonce value. In some embodiments, the plurality of validationentities may include a portion of the plurality of autonomous vehicles.At some point, the plurality of validation entities may form a consensuson the proposed block. Upon consensus, the proposed block may beincluded in the distributed ledger.

At block 520, the enforcement server may route the transactions includedin the now included block to the plurality of smart contracts. Asdescribed above, routing may involve extracting an indication of theautonomous vehicle and/or operator thereof, utilizing the indication toquery the database of smart contracts, and/or inputting the transactioninformation from the transaction into the smart contracts that match thequery. If the transaction indicated that a trigger condition occurred,the smart contract may output an action that is to be performed toenforce the smart contract.

At block 525, the enforcement server may automatically execute theaction that is to be performed to enforce the smart contract. For someactions, the enforcement server may utilize one or more third partyapplications accessible by the enforcement server. As an example, anemergency response entity may make an application accessible thatenables the enforcement server to initiate an emergency response. Forother actions, the enforcement server may be able to perform the actionwithout the assistance of a third party application. As an example, theenforcement server may be able to generate and transmit a text messageto an emergency contact without the assistance of a third partyapplication. It should be appreciated that the method 400 may includeadditional, less, or alternative actions, including those describedelsewhere herein.

Exemplary Enforcement Server

FIG. 6 illustrates a diagram of an exemplary enforcement server 615(such as the enforcement server 115 as discussed with respect to FIG. 1)in which the functionalities as discussed herein may be implemented. Itshould be appreciated that the enforcement server 615 may be associatedwith a distributed ledger that governs a plurality of smart contracts,as discussed elsewhere herein.

The enforcement server 615 may include a processor 622, as well as amemory 678. The memory 678 may store an operating system 679 capable offacilitating the functionalities as described herein. The enforcementserver 615 may also store a set of applications 675 (i.e., machinereadable instructions). For example, one application of the set ofapplications 675 may be a blockchain manager 684 configured to compiletransactions into blocks and/or to route transactions to smartcontracts. As another example, the set of applications 675 may includeone or more third party applications 685 to assist in executing anaction to enforce a smart contract. It should be appreciated that otherapplications may be included in the set of application 675.

The processor 622 may interface with the memory 678 to execute theoperating system 679 and the set of applications 675. According to someembodiments, the memory 678 may also include a plurality of smartcontracts 680. The blockchain manager 684 may access the smart contracts680 to facilitate the enforcement of the smart contracts 680. The memory678 may include one or more forms of volatile and/or non-volatile, fixedand/or removable memory, such as read-only memory (ROM), electronicprogrammable read-only memory (EPROM), random access memory (RAM),erasable electronic programmable read-only memory (EEPROM), and/or otherhard drives, flash memory, MicroSD cards, and others.

The enforcement server 615 may further include a communication module677 configured to communicate data via one or more networks 610.Network(s) 610 may include a mesh network comprised of one or moreautonomous vehicles. According to some embodiments, the communicationmodule 677 may include one or more transceivers (e.g., WWAN, WLAN,and/or WPAN transceivers) functioning in accordance with IEEE standards,3GPP standards, or other standards, and configured to receive andtransmit data via one or more external ports 676. In some embodiments,the communication module 677 may include separate transceiversconfigured to interact with the local and remote networks separately.The enforcement server 615 may further include a user interface 681configured to present information to a user and/or receive inputs fromthe user. As shown in FIG. 6, the user interface 681 may include adisplay screen 682 and I/O components 683 (e.g., ports, capacitive orresistive touch sensitive input panels, keys, buttons, lights, LEDs,speakers, microphones). According to the present embodiments, the usermay access the enforcement server 615 via the user interface 681 tomonitor the distributed ledger, update software executing at theenforcement sever 615 and/or perform other functions. In someembodiments, the enforcement server 615 may perform the functionalitiesas discussed herein as part of a “cloud” network, or may otherwisecommunicate with other hardware or software components within the cloudto send, retrieve, and/or otherwise analyze data.

In general, a computer program product in accordance with an embodimentmay include a computer usable storage medium (e.g., standard randomaccess memory (RAM), an optical disc, a universal serial bus (USB)drive, or the like) having computer-readable program code embodiedtherein, wherein the computer-readable program code is adapted to beexecuted by the processor 622 (e.g., working in connection with theoperating system 679) to facilitate the functions as described herein.In this regard, the program code may be implemented in any desiredlanguage, and may be implemented as machine code, assembly code, bytecode, interpretable source code or the like (e.g., via C, C++, Java,Actionscript, Objective-C, Javascript, CSS, XML). In some embodiments,the computer program product may be part of a cloud network ofresources.

Exemplary Autonomous Vehicle Event Distributed Ledger

FIG. 7 depicts an exemplary computer-implemented method of building,using, and/or maintaining a distributed ledger and/or blockchain relatedto autonomous vehicle transactions and/or events 700. The method 700 mayinclude recording autonomous vehicle or system transactions and/orevents 702. The transactions and/or events may detail an amount ofusage, and/or type of usage, for each autonomous or semi-autonomoussystem or technology on an autonomous or semi-autonomous vehicle. Thetransactions and/or events may also detail an amount of operation andusage of the autonomous or semi-autonomous vehicle, including operationor usage under (i) autonomous (or processor) control, and (ii) humancontrol, as well as detail which human of a household or company wasdriving the autonomous or semi-autonomous vehicle, and include atimestamp of when they were driving.

The method 700 may include compiling the autonomous vehicle or systemtransactions and/or events recorded into a log of events 704. Forinstance, the log may include transactions and/or events directed orrelated to autonomous vehicle usage (time of day, type of operation,type of control (autonomous/processor vs. human), location or areadriven, miles driven, type of weather or environment driven in, etc.).The log may include transactions and/or events directed to individual orspecific autonomous or semi-autonomous system or technology usage (suchas whether used or not, an amount or time of usage, a type of setting,etc.).

The transactions and/or events recorded in the distributed ledger and/orblockchain may be determined or sensed by various smart sensors and/orprocessors. The transactions and/or events may detail (i) a setting thatan autonomous or semi-autonomous system or technology is used at; (ii)how long the autonomous or semi-autonomous system or technology was usedor employed (or not used or employed); (iii) the time of day or yearduring which the autonomous or semi-autonomous system or technology wasused or employed (or not used or employed); (iv) the type of road (suchas highway, rural, or city) on which the autonomous or semi-autonomoussystem or technology was used or employed (or not used or employed); (v)an identification of the human driver and/or how many passengers wherein the vehicle; (vi) the environmental or weather conditions (rain, ice,snow, etc.) during which the autonomous or semi-autonomous system ortechnology was used or employed (or not used or employed); (vii) whetherthe autonomous or semi-autonomous system or technology was used oremployed (or not used or employed) when recommended to be employed by asmart vehicle controller or other processor; (viii) the status,operational status, or working condition of each autonomous orsemi-autonomous system or technology of an autonomous or semi-autonomousvehicle; (ix) a maintenance log of each autonomous system or technologyon the autonomous or semi-autonomous vehicle; (x) whether recommendedperiodic maintenance has been performed on the autonomous orsemi-autonomous vehicle, and/or on individual autonomous orsemi-autonomous systems mounted by the vehicle; (xi) whether eachautonomous system or technology is working as intended or not, such asvia system self-checks; (xii) autonomous vehicle and/or autonomousvehicle system warranty information; (xiii) make, model, type, and/orversion of autonomous vehicle system or software; (xiv) a timestamp ofswitching events during which control of the vehicle went from manualoperation to autonomous operation, or vice versa; and/or (xv) atimestamp of engagement events during which an autonomous system wasengaged or disengaged.

The method 700 may use the transactions and/or events recorded and/orlog of events recorded (for the vehicle as a whole, and for individualautonomous or semi-autonomous vehicle systems or technologies) forvarious actions. The actions may include generating a usage-basedinsurance quote based upon past or expected future autonomous system ortechnology usage (which may be determined or predicted based upon thetransactions and/or events recorded and/or the log of events recorded).The actions may include generating or estimating a current or actualvalue of the autonomous or semi-autonomous vehicle based upon the eventsrecorded and/or the log of events recorded. The actions may includedetermining that the autonomous or semi-autonomous vehicle was involvedin a vehicle collision, and/or assign percentage of fault for thevehicle collision (such as to the driver, the autonomous vehicle orsystem, or another vehicle or driver) based upon the events recordedand/or the log of events recorded. The actions may include handlinginsurance claims based upon the events recorded and/or the log of eventsrecorded.

In one embodiment, the method 700 may employ machine or deep learningtechniques on the autonomous vehicle transactions and/or events recordedin the log of events, and/or the blockchain or distributed ledger todetermine an action or end result. For instance, the recorded events maybe input into a machine learning algorithm trained to determine ausage-based insurance quote, a vehicle actual or replacement valuation,and/or that the autonomous vehicle was involved in a vehicle collisionbased at least in part on the recorded events associated with theautonomous vehicle, such as events related to individual autonomousvehicle feature or system usage (and/or amount thereof).

The method 700 may use the transactions and/or events recorded and/orthe log of events recorded to update a blockchain 708 or form aconsensus among distributed nodes that the blockchain should be updated,such as a blockchain related to point-in-time operator control and/or toan individual autonomous or semi-autonomous vehicle. For instance, theautonomous vehicle related events and/or actions determined may bedistributed among nodes in a public or private network via wirelesscommunication or data transmission over one or more radio links. Themethod 700 may update the blockchain at each node using the events, theindividual events recorded, and/or the actions determined (includingthose mentioned above), and use the events and/or actions to update orgenerate one or more smart contracts 710. For instance, the smartcontracts may relate to insurance quote generation, usage-basedinsurance quotes and contracts, and/or insurance claim handling.

The types of transactions and/or events recorded may relate toautonomous or semi-autonomous vehicle-related functionality ortechnology that replace human driver actions, and may include and/or berelated to the following types of functionality: (a) fully autonomous(driverless); (b) limited driver control; (c) vehicle-to-vehicle (V2V)wireless communication; (d) vehicle-to-infrastructure (and/or viceversa) wireless communication; (e) automatic or semi-automatic steering;(f) automatic or semi-automatic acceleration; (g) automatic orsemi-automatic braking; (h) automatic or semi-automatic blind spotmonitoring; (i) automatic or semi-automatic collision warning; (j)adaptive cruise control; (k) automatic or semi-automatic parking/parkingassistance; (l) automatic or semi-automatic collision preparation(windows roll up, seat adjusts upright, brakes pre-charge, etc.); (m)driver acuity/alertness monitoring; (n) pedestrian detection; (o)autonomous or semi-autonomous backup systems; (p) road mapping systems;(q) software security and anti-hacking measures; (r) theftprevention/automatic return; (s) automatic or semi-automatic drivingwithout occupants; and/or other functionality.

With the present embodiments, the events or transactions recorded mayrelate to autonomous or semi-autonomous vehicle technology orfunctionality directed toward: automatic or semi-automatic steering;automatic or semi-automatic acceleration and/or braking; automatic orsemi-automatic blind spot monitoring; automatic or semi-automaticcollision warning; adaptive cruise control; and/or automatic orsemi-automatic parking assistance. Additionally or alternatively, theautonomous or semi-autonomous technology or functionality may includeand/or be related to: driver alertness or responsive monitoring;pedestrian detection; artificial intelligence and/or back-up systems;navigation or GPS-related systems; security and/or anti-hackingmeasures; and/or theft prevention systems.

In one aspect, a computer-implemented method of building, utilizing,and/or maintaining an autonomous vehicle-related event blockchain may beprovided. The method may include one or more of the following, and thesequence of actions may be rearranged: (1) detecting and/or recording,via one or more processors, sensors, and/or transceivers, autonomousvehicle events, the autonomous vehicle events including autonomousvehicle system or technology usage or operational events; (2) compiling,via the one or more processors, the autonomous vehicle events into a logof recorded autonomous vehicle events; (3) determining, via the one ormore processors, an action to implement based upon the autonomousvehicle events recorded and/or the log of recorded autonomous vehicleevents; (4) forming a consensus with other distributed nodes to updateand/or otherwise updating, via the one or more processors, an autonomousvehicle-related blockchain to reflect or otherwise show (i) theautonomous vehicle events recorded, (ii) the log of recorded autonomousvehicle events, and/or (iii) the action to implement; and/or (5)distributing, via the one or more processors and/or transceivers, thelog of recorded autonomous vehicle events and/or the autonomousvehicle-related blockchain to a public or private network of distributednodes to facilitate maintaining the shared ledger of autonomous vehicleevents up-to-date. The method may include additional, less, or alternateactions, including those discussed elsewhere herein.

For instance, the method may include updating a smart contract basedupon the blockchain, events records, and/or actions determined toimplement. The action determined to implement based upon the autonomousvehicle events recorded and/or the log of recorded autonomous vehicleevents may be (i) estimating an actual value of the autonomous vehicle;(ii) estimating a replacement cost of the autonomous vehicle; (iii)generating a usage-based insurance quote for the autonomous vehicleand/or a specific trip; and/or (iv) to determine that the autonomousvehicle was involved in a vehicle collision, and to commence a claimhandling process.

The autonomous vehicle events recorded may be related to at least one ofthe following autonomous vehicle systems, features, or technologies:driver alertness monitoring; driver responsiveness monitoring;pedestrian detection; artificial intelligence; a back-up system; anavigation system; a positioning system; a security system; ananti-hacking measure; a theft prevention system; and/or remote vehiclelocation determination.

In another aspect, a computer system configured to build and utilize anautonomous vehicle-related event distributed ledger and/or blockchainmay be provided. The computer system may include one or more processors,sensors, and/or transceivers configured to perform one or more of thefollowing, and the order of actions may be rearranged: (1) detect and/orrecord autonomous vehicle events, the autonomous vehicle eventsincluding autonomous vehicle system or technology usage or operationalevents; (2) compile the autonomous vehicle events into a log of recordedautonomous vehicle events; (3) determine an action to implement basedupon the autonomous vehicle events recorded and/or the log of recordedautonomous vehicle events; (4) form a consensus with other distributednodes to update and/or otherwise update an autonomous vehicle-relatedblockchain to reflect or otherwise show (i) the autonomous vehicleevents recorded, (ii) the log of recorded autonomous vehicle events,and/or (iii) the action to implement; and/or (5) distribute the log ofrecorded autonomous vehicle events and/or the autonomous vehicle-relatedblockchain to a public or private network of distributed nodes tofacilitate maintaining the shared ledger of autonomous vehicle eventsup-to-date. The computer system may include additional, less, oralternate functionality, including that discussed elsewhere herein.

In one aspect, a computer-implemented method for maintaining adistributed ledger and/or blockchain of autonomous vehicle-relatedtransactions and/or events pertaining to one or more smart contractsand/or autonomous vehicles may be provided. The method may include thefollowing actions, and the actions may be performed in various orders:(1) receiving, at one or more processors, one or more autonomousvehicle-related transactions and/or events from one or more autonomousvehicles, the autonomous vehicle-related transactions and/or eventsindicative of at least one of a trigger condition or a decisioncondition associated with one or more smart contracts; (2) compiling, bythe one or more processors, the one or more autonomous vehicle-relatedtransactions and/or events into a block of transactions and/or events;(3) distributing, by the one or more processors, the block oftransactions and/or events to a plurality of validation entities viawireless or data transmission over one or more radio links or wirelesscommunication channels to form a consensus on an update to (and/orwhether or not to update) the distributed ledger and/or blockchain; (4)routing, by the one or more processors, the one or more autonomousvehicle-related transactions and/or events within the block torespective or corresponding smart contracts, wherein a particulartransaction corresponding to a particular smart contract indicates thata trigger condition for the particular smart contract has occurred;and/or (5) automatically executing, by the one or more processors, anaction the particular smart contract directs should be performed inresponse to the particular trigger condition, the action determinedbased upon a decision condition included in a transaction and/or eventrouted to the particular smart contract. The method may includeadditional, less, or alternate actions, including those discussedelsewhere herein, and may be implemented via computer systems and/ornon-transitory computer readable medium.

In another aspect, a computer-implemented method for maintaining adistributed ledger or blockchain of transactions or events pertaining toautonomous vehicles may be provided. The method may include one or moreof the following: (1) receiving, at one or more processors, one or moreautonomous vehicle-related transactions or events from one or moreautonomous vehicles, the transactions indicative of at least one of atrigger condition; (2) compiling, by the one or more processors, the oneor more autonomous vehicle-related transactions or events into a blockof transactions or events; (3) distributing, by the one or moreprocessors, the block of autonomous vehicle-related transactions orevents to a plurality of validation entities or nodes within acommunication network to form a consensus on whether or not to updatethe distributed ledger; and/or (4) when a consensus is formed, updating,by the one or more processors, the distributed ledger at the pluralityof validation entities or nodes to facilitate maintaining a distributedledger or blockchain associated with autonomous vehicle-relatedtransactions or events up-to-date. The method may include additional,less, or alternate actions, including those discussed elsewhere herein,and may be implemented via computer systems and/or non-transitorycomputer readable medium.

For instance, the method may include routing, by the one or moreprocessors, the plurality of transactions or events within the block toa plurality of smart contracts, wherein a particular transaction orevent corresponding to a particular smart contract may indicate that atrigger condition for the particular smart contract has occurred. Themethod may include automatically executing, by the one or moreprocessors, an action the particular smart contract directs should beperformed in response to the particular trigger condition, the actionmay be determined based upon a decision condition included in atransaction or event routed to the particular smart contract.

The trigger condition for the particular smart contract may be relatedto a particular autonomous vehicle incurring liability or being involvedin a vehicle collision; and/or the particular transaction or event mayindicate that the particular autonomous vehicle incurred liability orwas involved in a vehicle collision. The decision condition for theparticular smart contract may be a control state of the particularautonomous vehicle; and/or the particular transaction or event mayindicate whether the particular autonomous vehicle was beingautonomously or manually operated.

In another aspect, a computer-implemented method of building, utilizing,and/or maintaining an autonomous vehicle-related event distributedledger or blockchain may be provided. The method may include one or morefollowing, and in various order: (1) detecting and/or recording, via oneor more processors, sensors, and/or transceivers, autonomousvehicle-related events, one or more autonomous vehicle-related eventsincluding autonomous vehicle system or technology usage or operationalevents; (2) compiling, via the one or more processors, the one or moreautonomous vehicle events into a log of recorded autonomousvehicle-related events; (3) determining, via the one or more processors,an action to implement based upon the autonomous vehicle-related eventsrecorded and/or the log of recorded autonomous vehicle events; and/or(4) distributing, via the one or more processors and/or transceivers,the log of recorded autonomous vehicle-related events and/or the actionto implement to a public or private network of distributed nodes (suchas via wireless communication or data transmission over one or moreradio links or wireless communication channels) to facilitatemaintaining a shared ledger of autonomous vehicle-related eventsup-to-date. The method may include additional, less, or alternateactions, including those discussed elsewhere herein, and may beimplemented via computer systems and/or non-transitory computer readablemedium.

Exemplary Autonomous Vehicle Embodiments

In one aspect, a computer-implemented method for maintaining adistributed ledger of transactions pertaining to a plurality of smartcontracts may be provided. The method may include (1) monitoring, by oneor more processors, a plurality of sensors associated with a vehicle;(2) detecting, by the one or more processors, a change in a condition ofthe vehicle, the condition being associated with a smart contract of theplurality of smart contracts that governs the vehicle and/or an operatorof the vehicle; (3) generating, by the one or more processors, atransaction describing the detected change in the condition of thevehicle; and/or (4) transmitting, to a server, the transaction. Themethod may include additional, less, or alternate actions, includingthose discussed elsewhere herein.

For instance, the method may include compiling, by the one or moreprocessors, the transaction into a block of transactions, the blockbeing an update to the distributed ledger. Transmitting the transactionto the server may include transmitting, to the server, the block oftransactions.

The method may include receiving, from the server, a subscriptionrequest indicating the condition of the vehicle; and associating, by theone or more processors, the condition of the vehicle with a set of theplurality of sensors associated with the vehicle. The subscriptionrequest may indicate one or more expected ranges of values for outputsof the set of the plurality of sensors, the expected ranges of valuesbeing associated with one or more states corresponding to the conditionof the vehicle and/or one or more operational states of one or moreautonomous vehicle systems or technologies, including those discussedherein.

Detecting the change in the condition of the vehicle may includedetecting, by the one or more processors, that an output of a sensor(such as an autonomous vehicle system or technology sensor, or othervehicle-mounted sensor) the set of the plurality of sensors changed froma first expected range of values to a second expected range of values.

The change in the condition of the vehicle may be indicative of acollision with another vehicle. The method may include receiving, fromthe other vehicle, operating data generated by one or more sensors ofthe other vehicle, and the sensors of the other vehicle may beassociated with an autonomous vehicle system of the other vehicle.

The method may include analyzing, by the one or more processors, theoperating data to determine a relative fault between a party associatedwith the vehicle and a party associated with the other vehicle, and/or arelative fault between the vehicles if the vehicles are autonomous orsemi-autonomous vehicles, or relative fault between different autonomousvehicle systems or technologies mounted on one or more vehicles.

The method may include analyzing, by the one or more processors, theoperating data to determine that the vehicle, and not the other vehicle,should generate the transaction. The operating data may indicate that anantenna associated with the other vehicle is damaged.

The method may include receiving, from a node of the distributed ledger,a proposed block to add to the distributed ledger; and attempting, bythe one or more processors, to solve a cryptographic puzzle based upon aheader of the proposed block. When the one or more processors solve thecryptographic puzzle, the method may include transmitting, to one ormore nodes of the distributed ledger, a solution to the cryptographicpuzzle.

The method may include receiving, from a node of the distributed ledger,a proposed solution to the cryptographic puzzle; verifying, by the oneor more processors, the proposed solution to the cryptographic puzzle;and/or communicating, with one or more nodes of the distributed ledger,whether or not the proposed solution to the cryptographic puzzle wasverified in an attempt to from a consensus on the proposed solution.

The vehicle may be an autonomous vehicle, and the change in a conditionof the vehicle is a change in operation or operational state (such ason, off, hi, low, etc.) of an autonomous vehicle system or technologymounted on the autonomous vehicle. The autonomous vehicle system ortechnology may be associated with or related to: driver alertnessmonitoring; driver responsiveness monitoring; pedestrian detection;artificial intelligence; a back-up system; a navigation system; apositioning system; a security system; an anti-hacking measure; a theftprevention system; and/or remote vehicle location determination.

In another aspect, a computer system for maintaining a distributedledger of transactions pertaining to a plurality of smart contracts maybe provided. The computer system may include one or more processors; acommunication module adapted to communicate with one or more nodes ofthe distributed ledger; and a non-transitory program memory coupled tothe one or more processors and storing executable instructions that,when executed by the one or more processors, cause the computer systemto: (1) monitor a plurality of sensors associated with a vehicle; (2)detect a change in a condition of the vehicle, the condition beingassociated with a smart contract of the plurality of smart contractsthat governs the vehicle and/or an operator of the vehicle, or governsan autonomous vehicle system or technology mounted on the vehicle; (3)generate a transaction describing the detected change in the conditionof the vehicle; and/or (4) transmit, to a server, the transaction. Thecomputer system may include additional, less, or alternatefunctionality, including that discussed elsewhere herein.

In another aspect, a computer-implemented method for maintaining adistributed ledger of transactions pertaining to one or more smartcontracts may be provided. The method may include (1) monitoring, by oneor more processors, one or more sensors associated with a vehicle; (2)detecting, by the one or more processors, a change in a condition of thevehicle, the condition being associated with a smart contract thatgoverns the vehicle and/or an operator of the vehicle, or governs anautonomous vehicle system or technology mounted on the vehicle; (3)generating, by the one or more processors, a transaction describing thedetected change in the condition of the vehicle; and/or (4)transmitting, to a server, the transaction. The method may includecompiling, by the one or more processors, the transaction into a blockof transactions, the block being an update to the distributed ledger,and/or transmitting, to the server, the block of transactions. Themethod may include additional, less, or alternate actions, includingthose discussed elsewhere herein.

In another aspect, a computer system for maintaining a distributedledger of transactions pertaining to one or more smart contracts may beprovided. The computer system may include one or more processors; acommunication module adapted to communicate with one or more nodes ofthe distributed ledger; and a non-transitory program memory coupled tothe one or more processors and storing executable instructions that,when executed by the one or more processors, cause the computer systemto: (1) monitor one or more sensors associated with an autonomous orother vehicle; (2) detect a change in a condition of the vehicle, thecondition being associated with a smart contract that governs thevehicle and/or an operator of the vehicle; (3) generate a transactiondescribing the detected change in the condition of the vehicle; and/or(4) transmit, to a server, the transaction. The computer system mayinclude additional, less, or alternate functionality, including thatdiscussed elsewhere herein.

In another aspect, a computer-implemented method for maintaining adistributed ledger of transactions pertaining to an autonomous vehiclemay be provided. The method may include (1) monitoring, by one or moreprocessors, one or more sensors associated with an autonomous vehicle;(2) detecting, by the one or more processors, a change in a condition ofthe autonomous vehicle, the condition being associated with operation,or an operational state, of an autonomous vehicle system or technologymounted on the autonomous vehicle; (3) generating, by the one or moreprocessors, a transaction describing the detected change in thecondition of the vehicle; and/or (4) transmitting, to a server, thetransaction. The method may include compiling, by the one or moreprocessors, the transaction into a block of transactions, the blockbeing an update to the distributed ledger, and/or transmitting, to theserver, the block of transactions. The method may include additional,less, or alternate actions, including those discussed elsewhere herein.

In another aspect, a computer system for maintaining a distributedledger of transactions pertaining to an autonomous vehicle may beprovided. The computer system may include one or more processors; acommunication module adapted to communicate with one or more nodes ofthe distributed ledger; and a non-transitory program memory coupled tothe one or more processors and storing executable instructions that,when executed by the one or more processors, cause the computer systemto: (1) monitor one or more sensors associated with an autonomousvehicle; (2) detect a change in a condition of the vehicle, thecondition being associated with operation, or an operational state, ofan autonomous vehicle system or technology mounted on the autonomousvehicle; (3) generate a transaction describing the detected change inthe condition of the autonomous vehicle; and/or (4) transmit, to aserver, the transaction. The system may include additional, less, oralternate functionality, including that discussed elsewhere herein.

In another aspect, a computer-implemented method for maintaining adistributed ledger of transactions pertaining to one or more smartcontracts may be provided. The method may include (1) monitoring, by oneor more processors, a plurality of sensors associated with an autonomousvehicle; (2) detecting, by the one or more processors, a change in acondition of the autonomous vehicle, the condition being associated witha smart contract (such as a warranty, maintenance, service, or othercontract) that governs an autonomous vehicle system or technologyemployed by or mounted on the autonomous vehicle; (3) generating, by theone or more processors, a transaction describing the detected change inthe condition of the autonomous vehicle; and/or (4) transmitting, to aserver, the transaction. The method may include additional, less, oralternate actions, including those discussed elsewhere herein.

In another aspect, a computer system for maintaining a distributedledger of transactions pertaining to a one or more smart contracts maybe provided. The computer system may include: one or more processors; acommunication module adapted to communicate with one or more nodes ofthe distributed ledger; and a non-transitory program memory coupled tothe one or more processors and storing executable instructions that,when executed by the one or more processors, cause the computer systemto: (1) monitor one or more sensors associated with an autonomousvehicle; (2) detect a change in a condition of the vehicle, thecondition being associated with a smart contract that governs anautonomous vehicle technology or system employed by or mounted on theautonomous vehicle; (3) generate a transaction describing the detectedchange in the condition of the autonomous vehicle; and/or (4) transmit,to a server, the transaction. The system may include additional, less,or alternate functionality, including that discussed elsewhere herein.

Additional Considerations

An authoritative, trusted, immutable, distributed, shareable, securesystem may be needed to record if a human driver is controlling avehicle, and/or if the vehicle is acting autonomously. The record mayinclude crash sensor data to record crash information correlating todriver control information.

Blockchain technology may be used to store the transactions of controlinstances (from autonomous to human control to autonomous, for example).These control instances may be stored as they occur into blocks.Accordingly, this data may be included into the distributed ledgerenvironment of the blockchain. In this environment, a consensus systemmay fix the events/blocks immutably and securely. At the same time andfrom separate systems, vehicle sensor data may also be stored into theblock at various intervals by block management software (for example, anairbag deployed flag may remain at “0” prior to deployment, but becomesfixed to “1” after airbags deploy). This information may denote if acrash has occurred. In an aspect, this information is also synched tothe same timestamps as the driver control events.

The data of automobile control and accident sensor flags may be streamedvia the various systems in the car by existing technologies in theautomobile. For example, a vehicle's steering wheel, when in autonomousmode, may be exposed to micro-vibrations; when a human driver grabs thewheel, the micro-vibrations may stop. This may be indicative of thesteering system shifting to manual control. This shift may be logged ina control status event. The blockchain management software in theautomobile may take this reported information (the status changing fromautonomous to human control) and write into the block the timestamp,geolocation, speed, and any other data as prescribed (by themanufacturer, insurers, consumer groups, regulatory, law enforcement,and/or other organizations that may have input into what data should bereported).

The blockchain driver control and accident reporting system may besoftware composed of data aggregation from various automotive systems ina vehicle, a blockchain management system for writing driving controlevents to a block, and/or a means of passing this information (with theauto ID and user key signature/public ID) to a distributed ledgerblockchain platform (such an Ethereum or similar system) via a mobilecellular, satellite, Wi-Fi, and/or other wireless data transmissiontechnologies.

In some scenarios, the driver control and accident reporting blockchainmay have public interfaces that allow visibility into the data. In anembodiment, a private blockchain interface may also be used by automanufacturers, law enforcement, insurers, and regulatory agencies.

An element of smart contracts may also be enabled in the system.Depending on the sequence of events in the blockchain, terms of thesmart contract may be executed immediately, such as sending a tow truckto the geolocation if tow assistance is a part of the policy, filing alegal action by a subrogation team of an insurer is brought against anauto manufacturer (for example, if an accident occurs when theautonomous vehicle was in autonomous control), conducting a policyreview, filing a police report request with the jurisdiction of theroadway, processing claims awards made (for example, a partial paymentif deductible is met, to handle car rental or minor medical expense),sending a cancellation notice for the policy, and so on.

In embodiments in which the blockchain is associated with an automotiveor insurance consortium, and in a two or more car collision withvehicles containing this blockchain driver control and accidentmonitoring systems, it is possible that information (geolocation,timestamps, other information) can be shared between and among actors.This data may indicate that two cars collided, and the insuranceinformation may be contained in the blockchain. The smart contract maybe enforced, for example, to dispatch insurance claims personnel, and/orbegin an automatic process to contact the other insurance companiesinvolved.

In some aspects, customers may opt-in to a rewards, loyalty, or otherprogram. The customer may allow a remote server, such as an enforcementserver, to collect sensor, telematics, vehicle, mobile device, and othertypes of data discussed herein. With customer permission or affirmativeconsent, the data collected may be analyzed to provide certain benefitsto customers. For instance, insurance cost savings may be provided tolower risk or risk averse customers. As described herein, rewards,including cryptocurrency, may be awarded to accounts associated with thecustomer. The other functionality discussed herein may also be providedto customers in return for them allowing collection and analysis of thetypes of data discussed herein, as well as participating in thevalidation of the data discussed herein.

Although the text herein sets forth a detailed description of numerousdifferent embodiments, it should be understood that the legal scope ofthe invention is defined by the words of the claims set forth at the endof this patent. The detailed description is to be construed as exemplaryonly and does not describe every possible embodiment, as describingevery possible embodiment would be impractical, if not impossible. Onecould implement numerous alternate embodiments, using either currenttechnology or technology developed after the filing date of this patent,which would still fall within the scope of the claims.

It should also be understood that, unless a term is expressly defined inthis patent using the sentence “As used herein, the term ‘______’ ishereby defined to mean . . . ” or a similar sentence, there is no intentto limit the meaning of that term, either expressly or by implication,beyond its plain or ordinary meaning, and such term should not beinterpreted to be limited in scope based upon any statement made in anysection of this patent (other than the language of the claims). To theextent that any term recited in the claims at the end of this disclosureis referred to in this disclosure in a manner consistent with a singlemeaning, that is done for sake of clarity only so as to not confuse thereader, and it is not intended that such claim term be limited, byimplication or otherwise, to that single meaning. Finally, unless aclaim element is defined by reciting the word “means” and a functionwithout the recital of any structure, it is not intended that the scopeof any claim element be interpreted based upon the application of 35U.S.C. § 112(f).

Throughout this specification, plural instances may implementcomponents, operations, or structures described as a single instance.Although individual operations of one or more methods are illustratedand described as separate operations, one or more of the individualoperations may be performed concurrently, and nothing requires that theoperations be performed in the order illustrated. Structures andfunctionality presented as separate components in example configurationsmay be implemented as a combined structure or component. Similarly,structures and functionality presented as a single component may beimplemented as separate components. These and other variations,modifications, additions, and improvements fall within the scope of thesubject matter herein.

Additionally, certain embodiments are described herein as includinglogic or a number of routines, subroutines, applications, orinstructions. These may constitute either software (code embodied on anon-transitory, tangible machine-readable medium) or hardware. Inhardware, the routines, etc., are tangible units capable of performingcertain operations and may be configured or arranged in a certainmanner. In example embodiments, one or more computer systems (e.g., astandalone, client or server computer system) or one or more modules ofa computer system (e.g., a processor or a group of processors) may beconfigured by software (e.g., an application or application portion) asa module that operates to perform certain operations as describedherein.

In various embodiments, a module may be implemented mechanically orelectronically. Accordingly, the term “module” should be understood toencompass a tangible entity, be that an entity that is physicallyconstructed, permanently configured (e.g., hardwired), or temporarilyconfigured (e.g., programmed) to operate in a certain manner or toperform certain operations described herein. Considering embodiments inwhich modules are temporarily configured (e.g., programmed), each of themodules need not be configured or instantiated at any one instance intime. For example, where the modules comprise a general-purposeprocessor configured using software, the general-purpose processor maybe configured as respective different modules at different times.Software may accordingly configure a processor, for example, toconstitute a particular module at one instance of time and to constitutea different module at a different instance of time.

Modules can provide information to, and receive information from, othermodules. Accordingly, the described modules may be regarded as beingcommunicatively coupled. Where multiple of such modules existcontemporaneously, communications may be achieved through signaltransmission (e.g., over appropriate circuits and buses) that connectthe modules. In embodiments in which multiple modules are configured orinstantiated at different times, communications between such modules maybe achieved, for example, through the storage and retrieval ofinformation in memory structures to which the multiple modules haveaccess. For example, one module may perform an operation and store theoutput of that operation in a memory device to which it iscommunicatively coupled. A further module may then, at a later time,access the memory device to retrieve and process the stored output.Modules may also initiate communications with input or output devices,and can operate on a resource (e.g., a collection of information).

The various operations of example methods described herein may beperformed, at least partially, by one or more processors that aretemporarily configured (e.g., by software) or permanently configured toperform the relevant operations. Whether temporarily or permanentlyconfigured, such processors may constitute processor-implemented modulesthat operate to perform one or more operations or functions. The modulesreferred to herein may, in some example embodiments, compriseprocessor-implemented modules.

Similarly, the methods or routines described herein may be at leastpartially processor-implemented. For example, at least some of theoperations of a method may be performed by one or more processors orprocessor-implemented modules. The performance of certain of theoperations may be distributed among the one or more processors, not onlyresiding within a single machine, but deployed across a number ofmachines. In some example embodiments, the processor or processors maybe located in a single location (e.g., within a home environment, anoffice environment or as a server farm), while in other embodiments theprocessors may be distributed across a number of locations.

The performance of certain of the operations may be distributed amongthe one or more processors, not only residing within a single machine,but deployed across a number of machines. In some example embodiments,the one or more processors or processor-implemented modules may belocated in a single geographic location (e.g., within a homeenvironment, an office environment, or a server farm). In other exampleembodiments, the one or more processors or processor-implemented modulesmay be distributed across a number of geographic locations.

Unless specifically stated otherwise, discussions herein using wordssuch as “processing,” “computing,” “calculating,” “determining,”“presenting,” “displaying,” or the like may refer to actions orprocesses of a machine (e.g., a computer) that manipulates or transformsdata represented as physical (e.g., electronic, magnetic, or optical)quantities within one or more memories (e.g., volatile memory,non-volatile memory, or a combination thereof), registers, or othermachine components that receive, store, transmit, or displayinformation. Some embodiments may be described using the expression“coupled” and “connected” along with their derivatives. For example,some embodiments may be described using the term “coupled” to indicatethat two or more elements are in direct physical or electrical contact.The term “coupled,” however, may also mean that two or more elements arenot in direct contact with each other, but yet still co-operate orinteract with each other.

As used herein any reference to “one embodiment” or “an embodiment”means that a particular element, feature, structure, or characteristicdescribed in connection with the embodiment may be included in at leastone embodiment. The appearances of the phrase “in one embodiment” invarious places in the specification are not necessarily all referring tothe same embodiment. In addition, use of the “a” or “an” are employed todescribe elements and components of the embodiments herein. This is donemerely for convenience and to give a general sense of the description.This description, and the claims that follow, should be read to includeone or at least one and the singular also includes the plural unless itis obvious that it is meant otherwise.

As used herein, the terms “comprises,” “comprising,” “includes,”“including,” “has,” “having” or any other variation thereof, areintended to cover a non-exclusive inclusion. For example, a process,method, article, or apparatus that comprises a list of elements is notnecessarily limited to only those elements but may include otherelements not expressly listed or inherent to such process, method,article, or apparatus.

This detailed description is to be construed as exemplary only and doesnot describe every possible embodiment, as describing every possibleembodiment would be impractical, if not impossible. One could implementnumerous alternate embodiments, using either current technology ortechnology developed after the filing date of this application. Uponreading this disclosure, those of skill in the art will appreciate stilladditional alternative structural and functional designs for system anda method for assigning mobile device data to a vehicle through thedisclosed principles herein. Thus, while particular embodiments andapplications have been illustrated and described, it is to be understoodthat the disclosed embodiments are not limited to the preciseconstruction and components disclosed herein. Various modifications,changes and variations, which will be apparent to those skilled in theart, may be made in the arrangement, operation and details of the methodand apparatus disclosed herein without departing from the spirit andscope defined in the appended claims.

The particular features, structures, or characteristics of any specificembodiment may be combined in any suitable manner and in any suitablecombination with one or more other embodiments, including the use ofselected features without corresponding use of other features. Inaddition, many modifications may be made to adapt a particularapplication, situation or material to the essential scope and spirit ofthe present invention. It is to be understood that other variations andmodifications of the embodiments of the present invention described andillustrated herein are possible in light of the teachings herein and areto be considered part of the spirit and scope of the present invention.

While the preferred embodiments of the invention have been described, itshould be understood that the invention is not so limited andmodifications may be made without departing from the invention. Thescope of the invention is defined by the appended claims, and alldevices that come within the meaning of the claims, either literally orby equivalence, are intended to be embraced therein. It is thereforeintended that the foregoing detailed description be regarded asillustrative rather than limiting, and that it be understood that it isthe following claims, including all equivalents, that are intended todefine the spirit and scope of this invention.

1. A computer-implemented method for maintaining a distributed ledger oftransactions pertaining to one or more smart contracts and one or moreautonomous vehicles wherein each autonomous vehicle includes a pluralityof sensors that generate data indicative of respective conditions, themethod comprising: responsive to the generation of a smart contract,receiving, from a server, a subscription request indicating a conditionof an autonomous vehicle, wherein the smart contract (i) governs anautonomous vehicle system or technology employed by or mounted on theautonomous vehicle and (ii) utilizes the condition indicated in thesubscription request as a trigger or decision condition; determining, byone or more processors of an electronic device disposed at theautonomous vehicle, a subset of the plurality of sensors disposed at theautonomous vehicle that provide data relevant to the condition indicatedby the subscription request of the autonomous vehicle; causing, by oneor more processors, an application executing on the electronic device tobegin monitoring the determined subset of the plurality of sensorsassociated with the autonomous vehicle; detecting, by the one or moreprocessors, a change in the condition of the autonomous vehicle;generating, by the one or more processors, a transaction describing thedetected change in the condition of the autonomous vehicle; andtransmitting, to the server, the transaction.
 2. Thecomputer-implemented method of claim 1, further comprising: compiling,by the one or more processors, the transaction into a block oftransactions, the block being an update to the distributed ledger. 3.The computer-implemented method of claim 2, wherein transmitting thetransaction to the server further comprises: transmitting, to theserver, the block of transactions.
 4. (canceled)
 5. Thecomputer-implemented method of claim 1, wherein: the subscriptionrequest indicates one or more expected ranges of values for outputs ofthe subset of the plurality of sensors, the expected ranges of valuesbeing associated with one or more states corresponding to the conditionof the autonomous vehicle.
 6. The computer-implemented method of claim5, wherein detecting the change in the condition of the autonomousvehicle further comprises: detecting, by the one or more processors,that an output of a sensor of the subset of the plurality of sensorschanged from a first expected range of values to a second expected rangeof values.
 7. The computer-implemented method of claim 1, wherein: thechange in the condition of the autonomous vehicle is indicative of acollision with another autonomous vehicle.
 8. The computer-implementedmethod of claim 7, further comprising: receiving, from the otherautonomous vehicle, operating data generated by one or more sensors ofthe other autonomous vehicle.
 9. The computer-implemented method ofclaim 8, further comprising: analyzing, by the one or more processors,the operating data to determine a relative fault between a partyassociated with the autonomous vehicle and a party associated with theother autonomous vehicle.
 10. The computer-implemented method of claim9, further comprising: analyzing, by the one or more processors, theoperating data to determine that the autonomous vehicle, and not theother autonomous vehicle, should generate the transaction.
 11. Thecomputer-implemented method of claim 1, wherein the autonomous vehiclesystem or technology is associated with or related to: driver alertnessmonitoring; driver responsiveness monitoring; pedestrian detection;artificial intelligence; a back-up system; a navigation system; apositioning system; a security system; an anti-hacking measure; a theftprevention system; or remote vehicle location determination.
 12. Acomputer system associated with an autonomous vehicle for maintaining adistributed ledger of transactions pertaining to a one or more smartcontracts and one or more autonomous vehicles wherein each autonomousvehicle includes one or more sensors that generate data indicative ofrespective conditions, the computer system comprising: one or moreprocessors; a communication module adapted to communicate with one ormore nodes of the distributed ledger; and a non-transitory programmemory coupled to the one or more processors and storing executableinstructions that, when executed by the one or more processors, causethe computer system to: responsive to the generation of a smartcontract, receive, from a server, a subscription request indicating acondition of the autonomous vehicle, wherein the smart contract (i)governs an autonomous vehicle system or technology employed by ormounted on the autonomous vehicle and (ii) utilizes the conditionindicated in the subscription request as a trigger or decisioncondition; determine a subset of sensors of the one or more sensorsdisposed at the autonomous vehicle that provide data relevant to thecondition indicated by the subscription request of the autonomousvehicle; cause an application executing on the computer system to beginmonitoring the determined subset of sensors associated with theautonomous vehicle; detect a change in the condition of the vehicle;generate a transaction describing the detected change in the conditionof the autonomous vehicle; and transmit, to the server, the transaction.13. The computer system of claim 12, the computer system furtherconfigured to: compile the transaction into a block of transactions, theblock being an update to the distributed ledger.
 14. The computer systemof claim 13, wherein to transmit the transaction to the server, thecomputer system further configured to: transmit, to the server, theblock of transactions.
 15. (canceled)
 16. The computer system of claim12, wherein: the change in the condition of the autonomous vehicle isindicative of a collision with another autonomous vehicle.
 17. Thecomputer system of claim 16, the computer system further configured to:receive, from the other autonomous vehicle, operating data generated byone or more sensors of the other autonomous vehicle.
 18. The computersystem of claim 17, the computer system further configured to: analyzethe operating data to determine a relative fault between a partyassociated with the autonomous vehicle and a party associated with theother autonomous vehicle.
 19. The computer system of claim 12, whereinthe autonomous vehicle system or technology is associated with orrelated to: driver alertness monitoring; driver responsivenessmonitoring; pedestrian detection; artificial intelligence; a back-upsystem; a navigation system; a positioning system; a security system; ananti-hacking measure; a theft prevention system; or remote vehiclelocation determination.
 20. A non-transitory computer readable storagemedium for maintaining a distributed ledger of transactions pertainingto one or more smart contracts and one or more autonomous vehicleswherein each autonomous vehicle includes a plurality of sensors thatgenerate data indicative of respective conditions, storingprocessor-executable instructions, that, when executed, cause one ormore processors of an electronic device associated with the autonomousvehicle to: responsive to the generation of a smart contract, receive,from a server, a subscription request indicating a condition of theautonomous vehicle, wherein the smart contract (i) governs an autonomousvehicle system or technology employed by or mounted on the autonomousvehicle and (ii) utilizes the condition indicated in the subscriptionrequest as a trigger or decision condition; determine a subset ofsensors of the one or more sensors disposed at the autonomous vehiclethat provide data relevant to the condition indicated by thesubscription request of the autonomous vehicle; cause an applicationexecuting on the computer system to begin monitoring the determinedsubset of the one or more sensors associated with the autonomousvehicle; detect a change in the condition of the vehicle; generate atransaction describing the detected change in the condition of theautonomous vehicle; and transmit, to the server, the transaction. 21.The computer-implemented method of claim 1, further comprising:receiving, from the server, a request to unsubscribe from data relatingto the condition of the autonomous vehicle; and causing, by one or moreprocessors, the application executing on the electronic device to ceasemonitoring the determined subset of the plurality of sensors disposed atthe autonomous vehicle.